บล็อก PL/ SQL: โครงสร้าง ไวยากรณ์ ตัวอย่างที่ไม่ระบุชื่อ

บล็อก PL/SQL คืออะไร

ใน PL/SQL โค้ดจะไม่ดำเนินการในรูปแบบบรรทัดเดียว แต่จะดำเนินการโดยการจัดกลุ่มโค้ดให้เป็นองค์ประกอบเดียวที่เรียกว่า Blocks เสมอ ในบทช่วยสอนนี้ คุณจะได้เรียนรู้เกี่ยวกับบล็อกเหล่านี้

บล็อกมีทั้ง PL/SQL และคำสั่ง SQL คำสั่งทั้งหมดนี้จะถูกดำเนินการโดยรวม แทนที่จะดำเนินการคำสั่งเดียวในแต่ละครั้ง

โครงสร้างบล็อก

บล็อก PL/SQL มีโครงสร้างที่กำหนดไว้ล่วงหน้าเพื่อใช้จัดกลุ่มโค้ด ด้านล่างนี้คือส่วนต่างๆ ของบล็อก PL/SQL

  1. ส่วนการประกาศ
  2. ส่วนการดำเนินการ
  3. ส่วนการจัดการข้อยกเว้น

รูปภาพด้านล่างแสดงบล็อก 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

ไวยากรณ์บล็อก 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 มีสองประเภทหลักๆ

  1. บล็อกที่ไม่ระบุชื่อ
  2. ชื่อบล็อค

บล็อกที่ไม่ระบุชื่อ

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

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

ด้านล่างนี้คือคุณลักษณะเพิ่มเติมบางประการของบล็อกนิรนาม

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

บล็อกที่มีชื่อ

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

ด้านล่างนี้คือคุณลักษณะเพิ่มเติมบางประการของบล็อกที่มีชื่อ

  • บล็อกเหล่านี้สามารถเรียกจากบล็อกอื่นได้
  • โครงสร้างบล็อกเหมือนกับบล็อกที่ไม่ระบุชื่อ ยกเว้นว่าจะไม่ขึ้นต้นด้วยคำหลัก 'DECLARE' แต่จะเริ่มต้นด้วยคำหลัก 'CREATE' ซึ่งสั่งให้คอมไพเลอร์สร้างเป็นวัตถุฐานข้อมูลแทน
  • บล็อกเหล่านี้สามารถซ้อนกันภายในบล็อกอื่นได้ นอกจากนี้ยังสามารถมีบล็อกที่ซ้อนกันได้
  • บล็อกที่มีชื่อโดยพื้นฐานแล้วมีสองประเภท:
  1. การรักษาอื่นๆ
  2. ฟังก์ชัน

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

สรุป

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