SELECT last_number
FROM all_sequences
WHERE sequence_owner = '<sequence owner>'
AND sequence_name = '<sequence_name>';
คุณจะได้รับความหลากหลายของเมตาดาต้าลำดับจากuser_sequences
, และall_sequences
dba_sequences
มุมมองเหล่านี้ทำงานข้ามเซสชัน
แก้ไข:
หากลำดับอยู่ในสคีมาเริ่มต้นของคุณ:
SELECT last_number
FROM user_sequences
WHERE sequence_name = '<sequence_name>';
หากคุณต้องการข้อมูลเมตาทั้งหมด:
SELECT *
FROM user_sequences
WHERE sequence_name = '<sequence_name>';
หวังว่ามันจะช่วย ...
EDIT2:
วิธีที่ยืดยาวในการทำอย่างน่าเชื่อถือมากขึ้นถ้าขนาดแคชของคุณไม่ใช่ 1 จะเป็น:
SELECT increment_by I
FROM user_sequences
WHERE sequence_name = 'SEQ';
I
-------
1
SELECT seq.nextval S
FROM dual;
S
-------
1234
-- Set the sequence to decrement by
-- the same as its original increment
ALTER SEQUENCE seq
INCREMENT BY -1;
Sequence altered.
SELECT seq.nextval S
FROM dual;
S
-------
1233
-- Reset the sequence to its original increment
ALTER SEQUENCE seq
INCREMENT BY 1;
Sequence altered.
เพียงแค่ระวังว่าหากผู้อื่นใช้ลำดับในช่วงเวลานี้พวกเขา (หรือคุณ) อาจได้รับ
ORA-08004: sequence SEQ.NEXTVAL goes below the sequences MINVALUE and cannot be instantiated
นอกจากนี้คุณอาจต้องการตั้งค่าแคชให้เป็นNOCACHE
ก่อนการตั้งค่าใหม่จากนั้นกลับสู่ค่าเดิมหลังจากนั้นเพื่อให้แน่ใจว่าคุณไม่ได้แคชค่าจำนวนมาก