Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да извлечете текущата стойност на последователност от оракул, без да я увеличавате?

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>';

Надявам се да помогне...

РЕДАКТИРАНЕ 2:

Дълъг начин да го направите по-надеждно, ако размерът на кеша ви не е 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 преди нулирането и след това обратно към първоначалната стойност след това, за да сте сигурни, че не сте кеширали много стойности.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как можете да разберете дали се използва PL/SQL пакет, процедура или функция?

  2. Как да заредя голям брой низове, които да съответстват на базата данни на Oracle?

  3. Как NULL стойностите влияят на производителността при търсене в база данни?

  4. SQL (ORACLE):ORDER BY и LIMIT

  5. Числови функции в Oracle (пълен списък)