บล็อก PL/ SQL: โครงสร้าง ไวยากรณ์ ตัวอย่างที่ไม่ระบุชื่อ
บล็อก PL/SQL คืออะไร
ใน PL/SQL โค้ดจะไม่ดำเนินการในรูปแบบบรรทัดเดียว แต่จะดำเนินการโดยการจัดกลุ่มโค้ดให้เป็นองค์ประกอบเดียวที่เรียกว่า Blocks เสมอ ในบทช่วยสอนนี้ คุณจะได้เรียนรู้เกี่ยวกับบล็อกเหล่านี้
บล็อกมีทั้ง PL/SQL และคำสั่ง SQL คำสั่งทั้งหมดนี้จะถูกดำเนินการโดยรวม แทนที่จะดำเนินการคำสั่งเดียวในแต่ละครั้ง
โครงสร้างบล็อก
บล็อก PL/SQL มีโครงสร้างที่กำหนดไว้ล่วงหน้าเพื่อใช้จัดกลุ่มโค้ด ด้านล่างนี้คือส่วนต่างๆ ของบล็อก PL/SQL
- ส่วนการประกาศ
- ส่วนการดำเนินการ
- ส่วนการจัดการข้อยกเว้น
รูปภาพด้านล่างแสดงบล็อก PL/SQL ต่างๆ และลำดับส่วนต่างๆ
ส่วนประกาศ
นี่คือส่วนแรกของบล็อก PL/SQL ส่วนนี้เป็นส่วนเสริม นี่คือส่วนที่จะประกาศตัวแปร เคอร์เซอร์ ข้อยกเว้น โปรแกรมย่อย คำสั่ง Pragma และคอลเลกชันที่จำเป็นในบล็อก ด้านล่างนี้เป็นคุณลักษณะเพิ่มเติมบางประการของส่วนนี้
- ส่วนเฉพาะนี้เป็นทางเลือกและสามารถข้ามได้หากไม่จำเป็นต้องประกาศ
- นี่ควรเป็นส่วนแรกในบล็อก PL/SQL หากมี
- ส่วนนี้เริ่มต้นด้วยคำหลัก 'ประกาศ' สำหรับทริกเกอร์และการบล็อกที่ไม่ระบุชื่อ สำหรับโปรแกรมย่อยอื่นๆ คำสำคัญนี้จะไม่ปรากฏ แต่ส่วนที่อยู่หลังคำจำกัดความชื่อโปรแกรมย่อยจะทำเครื่องหมายส่วนการประกาศแทน
- ส่วนนี้ควรตามด้วยส่วนการดำเนินการเสมอ
มาตราการดำเนินการ
ส่วนการดำเนินการเป็นส่วนหลักและเป็นส่วนบังคับซึ่งจะเรียกใช้งานโค้ดที่เขียนอยู่ข้างใน ตั้งแต่วันที่ PL / SQL คาดว่าคำสั่งปฏิบัติการจากบล็อกนี้จะต้องไม่เป็นบล็อกว่าง กล่าวคือ ควรมีบรรทัดรหัสปฏิบัติการที่ถูกต้องอย่างน้อยหนึ่งบรรทัด ด้านล่างนี้เป็นคุณลักษณะเพิ่มเติมบางประการของส่วนนี้
- ซึ่งสามารถมีทั้งโค้ด PL/SQL และโค้ด SQL
- ซึ่งอาจมีบล็อกหนึ่งหรือหลายบล็อกอยู่ข้างในเป็นบล็อกที่ซ้อนกัน
- ส่วนนี้เริ่มต้นด้วยคำหลัก 'BEGIN'
- ส่วนนี้ควรตามด้วย 'END' หรือส่วนการจัดการข้อยกเว้น (ถ้ามี)
ส่วนการจัดการข้อยกเว้น
ข้อยกเว้นเป็นสิ่งที่หลีกเลี่ยงไม่ได้ในโปรแกรมที่เกิดขึ้นขณะรันไทม์และเพื่อจัดการสิ่งนี้ Oracle ได้จัดเตรียมส่วนการจัดการข้อยกเว้นไว้ในบล็อก ส่วนนี้ยังสามารถประกอบด้วยคำสั่ง PL/SQL นี่คือส่วนที่เป็นทางเลือกของบล็อก PL/SQL
- นี่คือส่วนที่มีการจัดการข้อยกเว้นที่เกิดขึ้นในบล็อกการดำเนินการ
- ส่วนนี้เป็นส่วนสุดท้ายของบล็อก PL/SQL
- การควบคุมจากส่วนนี้ไม่สามารถกลับไปยังบล็อกการดำเนินการได้
- ส่วนนี้เริ่มต้นด้วยคำหลัก 'ข้อยกเว้น'
- ส่วนนี้ควรตามด้วยคำหลัก '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' ซึ่งสั่งให้คอมไพเลอร์สร้างเป็นวัตถุฐานข้อมูลแทน
- บล็อกเหล่านี้สามารถซ้อนกันภายในบล็อกอื่นได้ นอกจากนี้ยังสามารถมีบล็อกที่ซ้อนกันได้
- บล็อกที่มีชื่อโดยพื้นฐานแล้วมีสองประเภท:
- การรักษาอื่นๆ
- ฟังก์ชัน
เราจะเรียนรู้เพิ่มเติมเกี่ยวกับบล็อคที่มีชื่อเหล่านี้ในหัวข้อ “ขั้นตอน” และ “ฟังก์ชัน” ในบทช่วยสอนถัดไป
สรุป
หลังจากบทช่วยสอนนี้ คุณควรทราบเกี่ยวกับบล็อก PL/SQL และประเภทของบล็อก ส่วนต่างๆ ของบล็อก และการใช้งานของบล็อกเหล่านั้น คำอธิบายโดยละเอียดของบล็อก PL/SQL ที่มีชื่อจะกล่าวถึงในบทช่วยสอนถัดไป