ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีใช้ฟังก์ชัน NEXTVAL เมื่อทำงานกับลำดับของ Oracle
หมายเหตุ: บทช่วยสอนนี้ไม่ครอบคลุมพื้นฐานของการสร้างลำดับ Oracle โปรดดูบทช่วยสอนของเราเกี่ยวกับลำดับของ Oracle เพื่อค้นพบเพิ่มเติม
ฟังก์ชัน Oracle Nextval
ฟังก์ชัน nextval ในลำดับ Oracle ใช้เพื่อดึงค่าถัดไปในลำดับที่กำหนด
เราสามารถแสดงไวยากรณ์ของฟังก์ชันตามที่แสดงในตัวอย่างโค้ดต่อไปนี้:
Sequence_name.nextval
ฟังก์ชันไม่ยอมรับอาร์กิวเมนต์หรือพารามิเตอร์ใดๆ จากนั้นจะส่งกลับค่าถัดไปในลำดับที่กำหนด
ตัวอย่างการสาธิตฟังก์ชั่น
ลองพิจารณาตัวอย่าง เราเริ่มต้นด้วยการกำหนดลำดับ Oracle อย่างง่ายดังแสดงในโค้ดต่อไปนี้:
สร้างลำดับ test_sequenceเริ่มกับ 1
เพิ่มขึ้นโดย 1 ;
เราใช้คำสั่ง CREATE SEQUENCE เพื่อเริ่มต้นลำดับ Oracle ใหม่ จากนั้นเราจะกำหนดค่าที่ลำดับเริ่มต้นและค่าที่เพิ่มขึ้นสำหรับแต่ละค่าที่สร้างขึ้นใหม่
ในตัวอย่างของเรา test_sequence เริ่มต้นที่ค่า 1 และเพิ่มขึ้นทีละค่าในแต่ละค่าใหม่ สิ่งนี้ควรสร้างชุดของค่าตัวเลขที่เริ่มต้นที่ 1,2,3,4,5…เป็นต้น
การใช้ฟังก์ชัน Oracle Nextval
เราสามารถใช้ฟังก์ชันค่าถัดไปจากลำดับ test_sequence เพื่อรับค่าถัดไป ดังที่แสดงต่อไปนี้
เลือก test_sequence.nextval จากคู่;สิ่งนี้ควรส่งคืนค่าถัดไปจากลำดับที่แสดงดังต่อไปนี้:
หากคุณเรียกใช้คำสั่งอีกครั้ง ควรส่งคืนค่าถัดไปในชุดข้อมูลซึ่งก็คือ 2
สิ่งนี้จะดำเนินต่อไปจนกว่าค่าจะหมด หรือคุณถึงค่าสูงสุดที่กำหนดไว้ในลำดับ ตรวจสอบบทช่วยสอนลำดับ Oracle ของเราเพื่อเรียนรู้วิธีตั้งค่าต่ำสุดและสูงสุด
การใช้ฟังก์ชัน Nextval เพื่อวนซ้ำค่าต่างๆ
เรายังสามารถใช้ฟังก์ชัน nextval เพื่อพิมพ์ตัวเลขตั้งแต่ 1 ถึง 10 ดังที่แสดงไว้ในโค้ดต่อไปนี้:
สร้างลำดับ looper_sequenceเริ่มกับ 1
เพิ่มขึ้นโดย 1 ;
ชุด เปิด SERVEROUTPUT;
เริ่ม
สำหรับฉันใน 1 .. 10
ลูป
DBMS_OUTPUT.PUT_LINE ( looper_sequence.nextval ) ;
จบลูป;
จบ;
รหัสที่ให้มาสร้างลำดับใหม่ที่เรียกว่า looper_sequence ซึ่งเริ่มต้นที่ 1 และเพิ่มขึ้นทีละ 1 สำหรับแต่ละค่าที่สร้างขึ้นใหม่
จากนั้นเราเปิดใช้งานตัวเลือก SERVEROUTPUT ซึ่งอนุญาตให้แพ็คเกจ DBMS_OUTPUT แสดงข้อความในคอนโซล SQL*Plus
สุดท้าย เราใส่ for loop ภายในคำสั่ง end/begin เพื่อวนซ้ำในช่วงของค่าตั้งแต่ 1 ถึง 10 จากนั้นเราเรียกฟังก์ชัน DBMS_OUTPUT.PUT_LINE สำหรับแต่ละค่าในช่วง และพิมพ์ค่าถัดไปในลำดับ looper_sequence ไปยัง คอนโซล
รหัสพิมพ์ค่าสิบถัดไปในลำดับลูป ในกรณีของเรา จะเป็นค่าตั้งแต่ 1 ถึง 10 หรือ 11 – 20… ไปเรื่อยๆ สำหรับการโทรใหม่แต่ละครั้ง
ผลลัพธ์ที่ได้ :
12
3
4
5
6
7
8
9
10
พีแอล / ขั้นตอน SQL เสร็จสมบูรณ์
การใช้ฟังก์ชัน Nextval ในคำสั่งแทรก
เรายังสามารถใช้ฟังก์ชัน nextval ในคำสั่งแทรกเป็นคีย์หลัก ตัวอย่างเช่น:
ใส่ลงใน ผู้ใช้ ( รหัส ,ชื่อแรก,บัตรเครดิต,ประเทศ )ค่า ( test_sequence.nextval, 'เจมส์ สมิธ' , '4278793631436711' , 'สหรัฐอาหรับเอมิเรตส์' ) ;
ในตัวอย่างที่กำหนด เราเรียกใช้ฟังก์ชัน nextval จาก test_sequence เพื่อแทรกค่าสำหรับคอลัมน์ id ในตาราง
บทสรุป
ในโพสต์นี้ คุณได้ค้นพบวิธีใช้ฟังก์ชัน Nextval ของ Oracle เพื่อดึงค่าถัดไปในลำดับ คุณยังได้เรียนรู้วิธีใช้ฟังก์ชันเพื่อวนซ้ำชุดของค่าหรือเพื่อแทรกค่าที่ไม่ซ้ำกันในคอลัมน์ตาราง