ลูป PL/SQL

Lup Pl Sql



ลูปเป็นหนึ่งในองค์ประกอบหลักในการเขียนโปรแกรม เราใช้การวนซ้ำเพื่อสร้างบล็อคโค้ดที่สามารถจัดการได้ซึ่งสามารถดำเนินการได้หลายครั้งเมื่อเงื่อนไขบางอย่างเป็นจริง พวกเขาเป็นกระดูกพื้นฐานเมื่อทำงานซ้ำ ๆ โดยอัตโนมัติโดยไม่ต้องเขียนโค้ดซ้ำหลาย ๆ ครั้ง

เช่นเดียวกับภาษาโปรแกรมหลักทั้งหมด PL/SQL รองรับการวนซ้ำซึ่งอนุญาตให้ชุดคำสั่งทำซ้ำได้จนกว่าจะตรงตามเงื่อนไขที่กำหนด

ในบทช่วยสอนนี้ เราจะสำรวจการใช้คำสั่ง LOOP ใน PL/SQL เพื่อรันบล็อกโค้ดซ้ำๆ







ออราเคิลลูป

ภาษา PL/SQL รองรับการสร้างลูปต่างๆ เช่น ลูป 'for' และลูป ' while' เราสามารถแสดงไวยากรณ์ของลูปทั่วไปใน Oracle ได้ดังที่แสดงต่อไปนี้:



<< ฉลาก >> ลูป
loop_statement;
สิ้นสุดลูป loop_label;

ประกอบด้วยคีย์เวิร์ด LOOP และเนื้อหาของลูปเพื่อดำเนินการ และปิดท้ายด้วยคีย์เวิร์ด END LOOP



บล็อกลูปรันการกระทำที่กำหนดไว้และส่งกลับการควบคุมไปยังส่วนคำสั่งลูปบนสุดหลังจากเสร็จสิ้น โดยปกติจะอยู่ในคำสั่ง EXIT หรือ EXIT WHEN เพื่อยุติการวนซ้ำหลังจากตรงตามเงื่อนไขที่ระบุ สิ่งนี้ช่วยป้องกันการวนซ้ำไม่สิ้นสุด





Oracle สำหรับไวยากรณ์ลูป:

ต่อไปนี้แสดงไวยากรณ์ของลูป 'for' ใน PL/SQL:

เริ่ม
สำหรับ loop_variable ใน [lower_bound..upper_bound] LOOP
-- รหัสที่จะดำเนินการในวง
จบลูป;
จบ;

loop_variable ให้คุณกำหนดลูปที่ใช้ในการควบคุมลูปและขอบเขตล่างและบน ขอบเขตบนและล่างระบุค่าช่วงที่การประเมินลูปเกิดขึ้น



Oracle ในขณะที่วนซ้ำ

นอกจากนี้ เรายังสามารถกำหนดลูป “ while” ใน PL/SQL ที่แสดงโดยไวยากรณ์ต่อไปนี้:

เริ่ม
ในขณะที่เงื่อนไข LOOP
- การดำเนินการวนซ้ำ
จบลูป;
จบ;

ในลูป “ while” การดำเนินการของลูปจะถูกดำเนินการซ้ำ ๆ ในขณะที่เงื่อนไขเป็นจริง

เคอร์เซอร์ Oracle สำหรับลูป

Oracle ยังสนับสนุนลูป 'เคอร์เซอร์สำหรับ' ซึ่งทำให้เราสามารถดำเนินการชุดคำสั่งสำหรับทุกแถวในชุดผลลัพธ์ที่กำหนด ไวยากรณ์สามารถแสดงได้ดังนี้:

เริ่ม
FOR loop_variable IN (เลือกคอลัมน์ 1, คอลัมน์ 2, ...
จากตารางที่ 1 ตารางที่ 2 ...
ที่เงื่อนไข) ห่วง
- การดำเนินการวนซ้ำ
จบลูป;
จบ;

ตัวอย่างลูปใน Oracle

ตัวอย่างต่อไปนี้ครอบคลุมพื้นฐานการทำงานกับ for, while และ for cursor loops ใน Oracle

ตัวอย่าง Oracle สำหรับลูป:

ตัวอย่างนี้สาธิตวิธีใช้ลูป 'for' เพื่อพิมพ์ตัวเลขตั้งแต่ 1 ถึง 10

เริ่ม
สำหรับฉันใน 1..10 ลูป
DBMS_OUTPUT.PUT_LINE(ผม);
จบลูป;
จบ;

ในขณะที่ตัวอย่างลูป:

เราสามารถดำเนินการที่คล้ายกันได้โดยใช้การวนรอบในขณะที่แสดงดังต่อไปนี้:

เริ่ม
ประกาศ
ฉัน หมายเลข := 1;
เริ่ม
ในขณะที่ฉัน <= 10 ลูป
DBMS_OUTPUT.PUT_LINE(ผม);
ผม := ผม + 1;
จบลูป;
จบ;
จบ;

สิ่งนี้ควรดำเนินการคล้ายกับลูป 'for'

เคอร์เซอร์สำหรับตัวอย่างลูป:

ข้อมูลต่อไปนี้แสดงวิธีใช้ลูป 'เคอร์เซอร์สำหรับ' เพื่อรับชื่อเต็มของลูกค้า:

เริ่ม
สำหรับพนักงาน IN (เลือก first_name, last_name
จากพนักงาน) ลูป
DBMS_OUTPUT.PUT_LINE(employee.first_name || ' ' || Employee.last_name);
จบลูป;
จบ;

ตัวอย่างเอาต์พุต:

บทสรุป

ในโพสต์นี้ คุณพบการวนซ้ำสามประเภทหลักในภาษา Oracle PL/SQL คุณสามารถตรวจสอบเอกสารเพื่อสำรวจเพิ่มเติม