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
रीसेट करने से पहले सेट करना चाहते हैं और फिर बाद में अपने मूल मूल्य पर वापस आ सकते हैं ताकि यह सुनिश्चित कर सकें कि आपने बहुत सारे मानों को कैश नहीं किया है।