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

Apa itu Urutan di oracle

Apa itu Urutan di oracle

  • Oracle Sequence adalah objek yang dibuat pengguna yang dapat dibagikan oleh banyak pengguna untuk menghasilkan bilangan bulat unik
  • Penggunaan paling umum dari urutan adalah untuk menghasilkan kolom kunci utama dalam tabel.
  • Urutan ini dihasilkan oleh rutinitas internal oracle sehingga kita tidak perlu khawatir tentang . Ini akan menghemat tim3 karena pengembang tidak perlu membuat urutan produksi rutin
  • Pembuat nomor urut, dapat dikonfigurasi untuk menambah atau mengurangi
  • Hanya ada di kamus data, bisa terbatas atau berulang (siklus).
  • Kita perlu membuat hak istimewa urutan untuk membuat urutan

Membuat urutan dilakukan dengan menggunakan

BUAT URUTAN

[MULAI DENGAN]

[NAIK SEPERTI]

[TIDAK/MINVALUE]

[TIDAK/MAXVALUE]

[TIDAK/SIKLUS]

[TIDAK ADA/CACHE];

Deskripsi setiap nilai

 

MULAI DENGAN Ini mendefinisikan nilai awal dari urutan (default 1 ),
NAIK SECARA Ini mendefinisikan tingkat kenaikan atau penurunan (default 1 ),
MINVALUE Ini mendefinisikan nilai terendah untuk urutan menurun
MAXVALUE Ini mendefinisikan nilai tertinggi untuk urutan yang meningkat
SIKLUS Ini menentukan apakah urutan akan berulang
CACHE Ini mendefinisikan blok nomor urut yang disimpan dalam memori (default 20 ), NOCACHE memaksa kamus data diperbarui untuk setiap nomor yang dihasilkan oleh urutan

Contoh

 

buat urutan test_tech mulai dengan 1
kenaikan sebesar 1
nilai maksimal 10000
siklus
cache 20;

buat urutan test_tech1

mulai dengan 1
kenaikan sebesar 1
nilai maksimal 4500000
siklus
nocache;

 

Cara menggunakan urutan

Untuk menggunakan urutan cukup gunakan kolom semu CURRVAL dan NEXTVAL

Kolom semu BERIKUTNYA 

Ini digunakan untuk menghasilkan nomor urut berurutan dari urutan yang ditentukan

Kolom semu CURRVAL 

Ini memegang urutan yang baru saja dibuat pengguna

PILIH TEST_TECH.NEXTVAL DARI DUAL;

PILIH TEST_TECH.CURRVAL DARI DUAL;

PILIH TEST_TECH.NEXTVAL DARI DUAL;

Cara Memodifikasi  urutan

Kita bisa memodifikasi urutannya menggunakan alter sequence.

SQL> MENGUBAH URUTAN tech_test1 PENINGKATAN 50;

Perubahan hanya berdampak pada penggunaan urutan di masa mendatang.

Anda harus menjadi pemilik atau memiliki hak istimewa untuk mengubah urutan tersebut

Kami tidak dapat mengubah mulai dengan opsi. Untuk urutan ini perlu dihapus dan dibuat ulang

Perubahan urutan juga divalidasi

Cara menghilangkan urutan

Menjatuhkan tampilan dilakukan dengan menggunakan perintah DROP sequence.

Drop sequence test_tech ;

Tampilan Kamus untuk melihat data urutan

detail urutan dapat ditanyakan dari kamus dengan menanyakan USER_SEQUENCES, ALL_ SEQUENCES atau DBA_ SEQUENCES. Ada tiga kategori  tampilan

USER_% Tampilan ini berisi informasi objek yang hanya dimiliki oleh pengguna

Contoh

USER_TABLES,USER_TAB_COLS

SEMUA-% Tampilan ini berisi informasi objek yang dapat diakses pengguna dalam database.

Contoh

ALL_TABLES,ALL_TAB_COLS

DBA_% Tampilan ini berisi informasi semua objek   dalam sistem dan ini adalah tampilan terbatas yang dapat diakses oleh pengguna yang memiliki peran DBA

Contoh

DBA_TABLES,DBA_TAB_COLS

  DBA_% tampilan tentang informasi urutan SEMUA_% tampilan tentang informasi urutan USER_% tampilan tentang informasi urutan
Lihat tentang urutan informasi dba_sequences semua_ urutan urutan_pengguna

Untuk membuat daftar semua urutan yang dimiliki oleh penggunaan saat ini

pilih  sequence_name dari user_sequences;

Untuk membuat daftar semua urutan dalam database:

Pilih  pemilik, sequence_name dari dba_sequences;

Untuk membuat daftar urutan yang dapat diakses oleh pengguna saat ini:

pilih sequence_name dari all_sequences

Bagaimana cara menentukan semua informasi tentang barisan?

pilih sequence_name,min_value,max_value,increment_by,last_number
DARI DBA_SEQUENCES

di mana OWNER =‘
dan sequence_NAME  =‘’;

Cara mengambil nilai saat ini dari urutan oracle tanpa menaikkannya

Kolom last_number menampilkan nomor urut berikutnya yang tersedia jika tidak ada cache yang ditentukan

SELECT last_number

DARI user_sequences

WHERE sequence_name =‘’;

Cara mengekstrak definisi urutan (pernyataan DDL) dari database Oracle tanpa harus melalui setumpuk tampilan kamus

Sintaks:

SQL> setel panjang 1000
SQL> setel ukuran halaman 0pilih DBMS_METADATA.GET_DDL(‘SEQUENCE’,'’) dari DUAL;

Cara  menyetel nilai LASTVALUE di Oracle Sequence

UBAH URUTAN tech_seq_name PENINGKATAN 250;

PILIH tech_seq_name.nextval FROM dual;

ALTER URUTAN tech_seq_name  NAIK 1;

Cara Mengatur Ulang Urutan di Oracle

Ada banyak cara.

a) Kita dapat menjatuhkan dan membuat ulang urutannya. Namun, ini membatalkan semua objek dependen (pemicu/prosedur tersimpan, dll.)

b) Kami dapat menyetel ulang  dengan langkah-langkah sederhana ini

Langkah 1:Temukan nilai terbaru dari barisan

Pilih tech_seq_name.nextval FROM dual;

Langkah 2:ubah urutan dengan penambahan nilai negatif dari  nilai terbaru

ALTER SEQUENCE tech_seq_name PENINGKATAN MENURUT -  nilai minimum 0;

Langkah 3  Lakukan nextval untuk menyetelnya kembali ke nol

PILIH tech_seq_name.nextval FROM dual;

Langkah 4:Ubah kenaikan kembali ke 1

ALTER URUTAN tech_seq_name  NAIK 1;

Contoh

PILIH tech_seq_name.nextval FROM dual;

——————————————

250

ALTER SEQUENCE tech_seq_name PENINGKATAN OLEH -250;

PILIH tech_seq_name.nextval FROM dual;

ALTER URUTAN tech_seq_name  NAIK 1;

Anda dapat menemukan lebih banyak di tautan ini

Cara mengatur ulang urutan

Dampak caching urutan

Urutan di-cache dengan tujuan meningkatkan kinerja pengambilan. Di RAC, setiap instance menyimpan nilai cache

Kami dapat memiliki celah secara berurutan saat menggunakan cache karena alasan berikut

  1. Pembalikan terjadi
  2. Sistem crash atau instance crash
  3. Urutan digunakan di tabel lain

Ada fitur baru di Oracle 12c untuk sequence

Urutan sesi

Dengan kata kunci baru Oracle Database 12C SESSION, tersedia GLOBAL yang dapat ditentukan selama pembuatan urutan
CREATE SEQUENCE test_session_seq MULAI DENGAN 1 INCREMENT BY 1 SESSION;
CREATE SEQUENCE test_global_seq MULAI DENGAN 1 PENINGKATAN DENGAN 1 GLOBAL;

Global Sesi
membuat urutan standar yang terkenal di rilis sebelumnya. Ini adalah default. membuat urutan sesi jenis baru, yang merupakan jenis urutan khusus yang dirancang khusus untuk digunakan dengan tabel sementara global yang memiliki visibilitas sesi. Urutan sesi mengembalikan rentang unik nomor urut hanya dalam satu sesi, tetapi tidak di seluruh sesi. Perbedaan lainnya adalah bahwa urutan sesi tidak persisten. Jika sesi hilang, begitu juga keadaan urutan sesi yang diakses selama sesi.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menyetel Pernyataan SQL di Pengembang SQL

  2. Cara terbaik untuk mempersingkat string UTF8 berdasarkan panjang byte

  3. Pemantauan SQL di Pengembang SQL

  4. Fungsi JSON_TABLE() di Oracle

  5. Bagaimana cara memilih dan mengoptimalkan indeks Oracle?