บล็อก PL/SQL: โครงสร้าง ไวยากรณ์ และตัวอย่างแบบไม่ระบุชื่อ
⚡ สรุปอย่างชาญฉลาด
บล็อก PL/SQL คือหน่วยพื้นฐานที่จัดกลุ่มคำสั่ง PL/SQL และ SQL เพื่อให้ทำงานพร้อมกัน แทนที่จะทำงานทีละบรรทัด บล็อกแต่ละบล็อกประกอบด้วยส่วนการประกาศ การทำงาน และการจัดการข้อผิดพลาด และบล็อกอาจเป็นแบบไม่ระบุชื่อหรือแบบระบุชื่อก็ได้

PL/SQL Block คืออะไร?
ใน PL/SQL โค้ดจะไม่ถูกประมวลผลในรูปแบบบรรทัดเดียว แต่จะถูกประมวลผลโดยกลุ่มเสมอping แปลงโค้ดให้เป็นองค์ประกอบเดียวที่เรียกว่าบล็อก ในบทเรียนนี้ คุณจะได้เรียนรู้เกี่ยวกับบล็อกเหล่านี้
บล็อกประกอบด้วยคำสั่งทั้ง PL/SQL และ SQL โดยคำสั่งทั้งหมดจะถูกประมวลผลพร้อมกันทั้งหมด ไม่ใช่ทีละคำสั่ง
โครงสร้างบล็อก
บล็อก PL/SQL มีโครงสร้างที่กำหนดไว้ล่วงหน้าซึ่งโค้ดจะถูกจัดกลุ่มไว้ ด้านล่างนี้คือส่วนต่างๆ ของบล็อก PL/SQL:
- ส่วนการประกาศ
- ส่วนการดำเนินการ
- ส่วนการจัดการข้อยกเว้น
ภาพด้านล่างแสดงให้เห็นถึงส่วนต่างๆ ของบล็อก PL/SQL และลำดับของส่วนเหล่านั้น
ส่วนประกาศ
นี่คือส่วนแรกของบล็อก PL/SQL และเป็นส่วนที่ไม่บังคับ ส่วนนี้ใช้สำหรับประกาศตัวแปร เคอร์เซอร์ ข้อยกเว้น โปรแกรมย่อย คำสั่ง pragma และคอลเลกชันที่จำเป็นในบล็อก ลักษณะเพิ่มเติมของส่วนนี้มีดังนี้:
- ส่วนนี้เป็นส่วนเสริมและสามารถข้ามไปได้หากไม่ต้องการการประกาศใดๆ
- ควรเป็นส่วนแรกในบล็อก PL/SQL หากมีอยู่
- สำหรับทริกเกอร์และบล็อกที่ไม่ระบุชื่อ คำสั่งจะเริ่มต้นด้วยคำว่า 'DECLARE' สำหรับซับโปรแกรมอื่นๆ จะไม่มีคำนี้ แต่ส่วนที่อยู่หลังชื่อซับโปรแกรมจะเป็นส่วนที่แสดงส่วนการประกาศ
- ส่วนนี้ควรตามด้วยส่วนการดำเนินการเสมอ
มาตราการดำเนินการ
ส่วนการประมวลผลเป็นส่วนหลักและจำเป็นที่ทำหน้าที่เรียกใช้โค้ดที่เขียนไว้ภายในนั้นจริง ๆ PL / SQL ส่วนนี้ต้องการคำสั่งที่สามารถเรียกใช้งานได้ บล็อกนี้ต้องไม่ว่างเปล่าและต้องมีอย่างน้อยหนึ่งบรรทัดที่สามารถเรียกใช้งานได้อย่างถูกต้อง นอกจากนี้ยังมีคุณลักษณะอื่นๆ อีกเล็กน้อย:
- สามารถประกอบด้วยทั้งโค้ด PL/SQL และโค้ด SQL ได้
- มันสามารถบรรจุบล็อกหนึ่งหรือหลายบล็อกไว้ภายในได้ โดยเป็นบล็อกที่ซ้อนกันอยู่
- เริ่มต้นด้วยคำหลัก 'BEGIN'
- ควรตามด้วยคำว่า 'END' หรือส่วนการจัดการข้อผิดพลาด (ถ้ามี)
ส่วนการจัดการข้อยกเว้น
ข้อยกเว้นคือข้อผิดพลาดที่หลีกเลี่ยงไม่ได้ซึ่งเกิดขึ้นในระหว่างการทำงาน และจำเป็นต้องจัดการกับข้อยกเว้นเหล่านั้น Oracle ส่วนนี้มีส่วนสำหรับจัดการข้อผิดพลาดในรูปแบบบล็อก ส่วนนี้สามารถมีคำสั่ง PL/SQL ได้ด้วย และเป็นส่วนที่ไม่บังคับ
- ส่วนนี้คือส่วนที่ใช้จัดการข้อผิดพลาดที่เกิดขึ้นในบล็อกการทำงาน
- นี่คือส่วนสุดท้ายของบล็อก PL/SQL
- การควบคุมจากส่วนนี้ไม่สามารถกลับไปยังบล็อกการดำเนินการได้
- เริ่มต้นด้วยคำหลัก 'EXCEPTION'
- ควรตามด้วยคำว่า 'END' เสมอ
คำหลัก 'END' ใช้เพื่อระบุจุดสิ้นสุดของบล็อก PL/SQL
ไวยากรณ์บล็อก PL/SQL
ด้านล่างนี้คือไวยากรณ์ของโครงสร้างบล็อก PL/SQL
DECLARE --optional <declarations> BEGIN --mandatory <executable statements. At least one executable statement is mandatory> EXCEPTION --optional <exception handles> END; --mandatory /
หมายเหตุ บล็อกโค้ดควรตามด้วยเครื่องหมาย '/' เสมอ ซึ่งจะส่งข้อมูลไปยังคอมไพเลอร์เกี่ยวกับจุดสิ้นสุดของบล็อก
ประเภทของบล็อก PL/SQL
บล็อก PL/SQL ส่วนใหญ่มีสองประเภท:
- บล็อกที่ไม่ระบุชื่อ
- บล็อกที่มีชื่อ
ด้านล่างนี้เป็นการเปรียบเทียบโดยสังเขปของทั้งสองอย่าง ก่อนที่จะอธิบายรายละเอียดของแต่ละอย่าง
| แง่มุม | บล็อกนิรนาม | บล็อกที่มีชื่อ |
|---|---|---|
| มีชื่อ | ไม่ | มี (ใบกำกับภาษีเต็มรูปแบบ) |
| บันทึกไว้ในฐานข้อมูล | ไม่ | ใช่ ในฐานะวัตถุ |
| เริ่มต้นด้วย | ประกาศหรือเริ่มต้น | สร้าง |
| นำมาใช้ใหม่ | เซสชั่นเดียวกันเท่านั้น | โทรได้ตลอดเวลา |
บล็อกนิรนาม
บล็อกนิรนามคือบล็อก PL/SQL ที่ไม่มีการกำหนดชื่อให้ จำเป็นต้องสร้างและใช้งานบล็อกเหล่านี้ภายในเซสชันเดียวกัน เนื่องจากไม่ได้ถูกจัดเก็บไว้บนเซิร์ฟเวอร์ในรูปแบบของอ็อบเจ็กต์ฐานข้อมูล
เนื่องจากไม่ได้จัดเก็บไว้ในฐานข้อมูล จึงไม่จำเป็นต้องมีขั้นตอนการคอมไพล์แยกต่างหาก ไฟล์เหล่านี้ถูกเขียนและเรียกใช้งานโดยตรง และการคอมไพล์และการเรียกใช้งานเกิดขึ้นในกระบวนการเดียว ลักษณะเด่นอื่นๆ อีกเล็กน้อย:
- บล็อกเหล่านี้ไม่มีชื่ออ้างอิง
- คำสั่งเหล่านี้เริ่มต้นด้วยคำหลัก 'DECLARE' หรือ 'BEGIN'
- เนื่องจากไม่มีชื่ออ้างอิง จึงไม่สามารถจัดเก็บไว้ใช้ในภายหลังได้ และต้องสร้างและเรียกใช้งานภายในเซสชันเดียวกันเท่านั้น
- พวกเขาสามารถเรียกบล็อกที่มีชื่ออื่นๆ ได้ แต่ไม่สามารถเรียกบล็อกที่ไม่ระบุชื่อได้ เนื่องจากบล็อกนั้นไม่มีการอ้างอิง
- พวกมันสามารถมีบล็อกย่อยที่ซ้อนกันอยู่ได้ โดยบล็อกย่อยนั้นอาจมีชื่อหรือไม่ก็ได้ และยังสามารถซ้อนอยู่ภายในบล็อกใดก็ได้อีกด้วย
- พวกเขาสามารถมีได้ครบทั้งสามส่วน โดยส่วนการดำเนินการเป็นส่วนที่บังคับ และอีกสองส่วนเป็นส่วนที่ไม่จำเป็น
ชื่อบล็อค
บล็อกที่มีชื่อจะมีชื่อเฉพาะและไม่ซ้ำกัน บล็อกเหล่านี้จะถูกจัดเก็บเป็นอ็อบเจ็กต์ในฐานข้อมูลบนเซิร์ฟเวอร์ ดังนั้นจึงสามารถอ้างอิงหรือใช้งานได้ตราบใดที่บล็อกเหล่านั้นยังคงอยู่ กระบวนการคอมไพล์สำหรับบล็อกที่มีชื่อจะเกิดขึ้นแยกต่างหากเมื่อสร้างเป็นอ็อบเจ็กต์ในฐานข้อมูล คุณลักษณะเพิ่มเติมอีกเล็กน้อย:
- บล็อกเหล่านี้สามารถเรียกจากบล็อกอื่นได้
- โครงสร้างของบล็อกนั้นเหมือนกับบล็อกนิรนาม ยกเว้นว่าจะไม่เริ่มต้นด้วย 'DECLARE' แต่จะเริ่มต้นด้วย 'CREATE' ซึ่งเป็นการสั่งให้คอมไพเลอร์สร้างมันเป็นอ็อบเจ็กต์ในฐานข้อมูล
- บล็อกเหล่านี้สามารถซ้อนกันภายในบล็อกอื่นได้ และยังสามารถบรรจุบล็อกที่ซ้อนกันอยู่ภายในได้อีกด้วย
- บล็อกที่มีชื่อโดยพื้นฐานแล้วมีสองประเภท:
- การรักษาอื่นๆ
- ฟังก์ชัน
คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับบล็อกที่มีชื่อเหล่านี้ได้ในคู่มือ ขั้นตอนและหน้าที่.


