Fungsi Nextval Urutan Oracle

Fungsi Nextval Urutan Oracle



Dalam Oracle, jujukan merujuk kepada objek pangkalan data yang menjana satu siri nilai berangka mengikut kenaikan yang ditentukan. Jujukan biasanya digunakan untuk menjana nilai kunci utama yang unik untuk rekod dalam jadual pangkalan data.

Dalam tutorial ini, kita akan belajar cara menggunakan Fungsi NEXTVAL apabila bekerja dengan urutan Oracle.

NOTA: Tutorial ini tidak merangkumi asas mencipta jujukan Oracle. Rujuk tutorial kami tentang urutan Oracle untuk mengetahui lebih lanjut.







Fungsi Oracle Nextval

Fungsi nextval dalam urutan Oracle digunakan untuk mengambil nilai seterusnya dalam urutan tertentu.



Kita boleh menyatakan sintaks fungsi seperti yang ditunjukkan dalam coretan kod berikut:



sequence_name.nextval

Fungsi ini tidak menerima sebarang hujah atau parameter. Ia kemudian mengembalikan nilai seterusnya dalam urutan yang ditentukan.





Contoh Demonstrasi Fungsi

Mari kita pertimbangkan satu contoh. Kita mulakan dengan mentakrifkan urutan Oracle yang mudah seperti yang ditunjukkan dalam kod berikut:

BUAT URUTAN test_sequence
BERMULA DENGAN 1
KENAIKAN OLEH 1 ;

Kami menggunakan pernyataan CREATE SEQUENCE untuk memulakan urutan Oracle baharu. Kami kemudiannya mentakrifkan pada nilai apakah jujukan bermula dan nilai kenaikan untuk setiap nilai terjana baharu.



Dalam contoh kami, test_sequence bermula pada nilai 1 dan kenaikan satu pada setiap nilai baharu. Ini harus menghasilkan satu siri nilai berangka bermula pada 1,2,3,4,5…dsb.

Menggunakan Fungsi Oracle Nextval

Kita boleh menggunakan fungsi nilai seterusnya daripada urutan test_sequence untuk mendapatkan nilai seterusnya, seperti yang ditunjukkan dalam yang berikut:

pilih test_sequence.nextval daripada dwi;

Ini harus mengembalikan nilai seterusnya dari urutan seperti yang ditunjukkan dalam yang berikut:

Jika anda memanggil kenyataan itu sekali lagi, ia harus mengembalikan nilai seterusnya dalam siri iaitu 2.

Ini berterusan sehingga nilai habis, atau anda mencapai nilai maksimum yang ditakrifkan dalam jujukan. Semak tutorial urutan Oracle kami untuk mengetahui cara menetapkan nilai minimum dan maksimum.

Menggunakan Fungsi Nextval untuk Melingkar Nilai

Kita juga boleh menggunakan fungsi nextval untuk mencetak nombor dari 1 hingga 10 seperti yang ditunjukkan dalam kod berikut:

CIPTA URUTAN looper_sequence
BERMULA DENGAN 1
KENAIKAN OLEH 1 ;

ditetapkan SERVEROUTPUT dihidupkan;
BERMULA
UNTUK i IN 1 .. 10
LOOP
DBMS_OUTPUT.PUT_LINE ( looper_sequence.nextval ) ;
GULUNG TAMAT;
TAMAT;

Kod yang disediakan mencipta urutan baharu yang dipanggil looper_sequence yang bermula pada 1 dan meningkat sebanyak 1 untuk setiap nilai terjana baharu.

Kami kemudiannya mendayakan pilihan SERVEROUTPUT yang membenarkan pakej DBMS_OUTPUT memaparkan mesej dalam konsol SQL*Plus.

Akhir sekali, kami melampirkan gelung for di dalam pernyataan akhir/mula untuk mengulangi julat nilai dari 1 hingga 10. Kami kemudian memanggil fungsi DBMS_OUTPUT.PUT_LINE untuk setiap nilai dalam julat dan mencetak nilai seterusnya dalam jujukan looper_sequence ke konsol.

Kod mencetak sepuluh nilai seterusnya dalam jujukan gelung. Dalam kes kami, ia akan menjadi nilai dari 1 hingga 10 atau 11 – 20… dan seterusnya untuk setiap panggilan baharu.

Output Terhasil :

1
2
3
4
5
6
7
8
9
10


PL / Prosedur SQL berjaya diselesaikan.

Menggunakan Fungsi Nextval dalam Penyata Sisipan

Kita juga boleh menggunakan fungsi nextval dalam pernyataan sisipan sebagai kunci utama. Sebagai contoh:

masukkan ke dalam pengguna ( ID ,nama_pertama,kad_kredit,negara )
nilai ( test_sequence.nextval, 'James Smith' , '4278793631436711' , 'Emiriah Arab Bersatu' ) ;

Dalam contoh yang diberikan, kami memanggil fungsi nextval daripada test_sequence untuk memasukkan nilai bagi lajur id dalam jadual.

Kesimpulan

Dalam siaran ini, anda menemui cara menggunakan fungsi Oracle nextval untuk mengambil nilai seterusnya dalam urutan. Anda juga mempelajari cara menggunakan fungsi tersebut untuk mengulangi set nilai atau untuk memasukkan nilai unik dalam lajur jadual.