Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bagaimana cara mengambil nilai saat ini dari urutan Oracle tanpa menambahnya?

SELECT last_number
  FROM all_sequences
 WHERE sequence_owner = '<sequence owner>'
   AND sequence_name = '<sequence_name>';

Anda bisa mendapatkan berbagai metadata urutan dari user_sequences , all_sequences dan dba_sequences .

Tampilan ini berfungsi di seluruh sesi.

EDIT:

Jika urutannya ada dalam skema default Anda, maka:

SELECT last_number
  FROM user_sequences
 WHERE sequence_name = '<sequence_name>';

Jika Anda menginginkan semua metadata, maka:

SELECT *
  FROM user_sequences
 WHERE sequence_name = '<sequence_name>';

Semoga membantu...

EDIT2:

Cara bertele-tele untuk melakukannya dengan lebih andal jika ukuran cache Anda bukan 1 adalah:

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.

Berhati-hatilah jika orang lain menggunakan urutan selama waktu ini - mereka (atau Anda) mungkin mendapatkan

ORA-08004: sequence SEQ.NEXTVAL goes below the sequences MINVALUE and cannot be instantiated

Juga, Anda mungkin ingin mengatur cache ke NOCACHE sebelum menyetel ulang dan kemudian kembali ke nilai aslinya setelah itu untuk memastikan Anda tidak menyimpan banyak nilai dalam cache.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengisi Item Pohon Dengan Grup Rekaman Dalam Formulir Oracle

  2. Tampilan logis dari model data di R12.2

  3. Metadata mengenai tipe record level paket PL/SQL

  4. Kesalahan SQL:ORA-00933:Perintah SQL tidak berakhir dengan benar

  5. COSH() Fungsi di Oracle