คู่มือฉบับสมบูรณ์เกี่ยวกับขั้นตอนและฟังก์ชันใน PL SQL

เผยแพร่แล้ว: 2023-01-30
คู่มือฉบับสมบูรณ์เกี่ยวกับขั้นตอนและฟังก์ชันใน PL SQL

ภาษาโปรแกรมเป็นระบบสำหรับการเขียนโปรแกรมคอมพิวเตอร์ แม้ว่าภาษาโปรแกรมหลายภาษาจะเป็นแบบข้อความ แต่ภาษาอื่นๆ ก็อาจเป็นกราฟิกได้เช่นกัน ภาษาเหล่านี้ช่วยให้โปรแกรมเมอร์สามารถสื่อสารกับคอมพิวเตอร์ได้ Structured Query Language (SQL) เป็นภาษาโปรแกรมประเภทหนึ่งที่ช่วยในการจัดเก็บ จัดการ และดึงข้อมูลที่จัดเก็บไว้ในฐานข้อมูลเชิงสัมพันธ์ ในคำแนะนำวันนี้ เราจะแบ่งปันรายละเอียดเกี่ยวกับการดำเนินการบล็อกชื่อ (ขั้นตอนและฟังก์ชัน) ซึ่งเป็นโปรแกรมย่อยสำหรับ PL SQL ดังนั้น หากคุณกำลังมองหาคำแนะนำอย่างละเอียดเกี่ยวกับขั้นตอนและฟังก์ชันใน PL SQL คุณก็มาถูกที่แล้ว ในเอกสารนี้ พร้อมกับหัวข้อโพรซีเดอร์ที่จัดเก็บ PL SQL คุณจะได้เรียนรู้เกี่ยวกับตัวอย่างโพรซีเดอร์ PL SQL ไม่ต้องพูดถึงขั้นตอนการเรียก PL SQL ขั้นตอนการออกจาก PL SQL และตัวอย่างฟังก์ชัน PL SQL ที่มีความสำคัญเท่าเทียมกันในการเรียนรู้หากคุณเป็นโปรแกรมเมอร์รุ่นใหม่ ดังนั้น เรามาเริ่มกันเลยด้วยคำแนะนำอย่างละเอียดเกี่ยวกับ PL SQL

คู่มือฉบับสมบูรณ์เกี่ยวกับขั้นตอนและฟังก์ชันใน PL SQL

เนื้อหา

  • คู่มือฉบับสมบูรณ์เกี่ยวกับขั้นตอนและฟังก์ชันใน PL SQL
  • PL SQL คืออะไร?
  • ขั้นตอนและฟังก์ชันใน PL SQL คืออะไร
  • วิธีสร้าง Stored Procedure และ Function ใน PL SQL
  • ข้อดีของ Stored Procedure และ Function ใน PL SQL
  • ไวยากรณ์สำหรับการสร้างกระบวนงานที่เก็บไว้
  • ตัวอย่างขั้นตอน PL SQL
  • ไวยากรณ์สำหรับการสร้างฟังก์ชันใน PL SQL
  • ตัวอย่างฟังก์ชัน PL SQL
  • ขั้นตอนการออกจาก PL SQL คืออะไร
  • ความแตกต่างระหว่างกระบวนงานที่เก็บไว้และฟังก์ชัน

คู่มือฉบับสมบูรณ์เกี่ยวกับขั้นตอนและฟังก์ชันใน PL SQL

ที่นี่ เราได้แสดงขั้นตอนและฟังก์ชัน PL SQL พร้อมตัวอย่างโดยละเอียด

PL SQL คืออะไร?

  • PL SQL เป็นรูปแบบย่อของ ส่วนขยายภาษาขั้นตอนไปยัง SQL
  • PL SQL เป็นภาษาที่มีโครงสร้างแบบบล็อกสำหรับโปรแกรมเมอร์ที่ช่วยให้พวกเขา รวมพลังของ SQL เข้ากับ คำสั่งขั้นตอน
  • เป็นส่วนขยายขั้นตอน ของ Oracle Corporation
  • ภาษาขั้นตอนนี้มีอยู่ในฐานข้อมูล Oracle , ฐานข้อมูลในหน่วยความจำ Times Ten และ IBM Db2
  • ในขณะรันไทม์ ทั้ง PL/SQL และ SQL จะมีประสิทธิภาพสูงสุดโดยการรันภายใน กระบวนการของเซิร์ฟเวอร์เดียวกัน
  • PL SQL ช่วยให้มั่นใจว่าการประมวลผลคำสั่ง SQL มีประสิทธิภาพและไม่ถูกรบกวนโดยการเพิ่มความสามารถในการ พกพา ความปลอดภัย และ ความทนทาน ของฐานข้อมูล
  • PL SQL หมายถึงการสั่งคอมไพเลอร์ ว่าต้องทำอะไร ผ่าน SQL และ วิธีการดำเนินการ ผ่าน ขั้นตอน ของมัน
  • PL SQL ช่วยให้โปรแกรมเมอร์ควบคุมได้มากขึ้นด้วยการ ใช้ลูป เงื่อนไข และ แนวคิดเชิงวัตถุ

ขั้นตอนและฟังก์ชันใน PL SQL คืออะไร

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

วิธีสร้าง Stored Procedure และ Function ใน PL SQL

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

  • ส่วนการประกาศ : ในส่วนนี้ จะมีการประกาศตัวแปร ค่าคงที่ เคอร์เซอร์ หรือข้อยกเว้นที่จะใช้ในโพรซีเดอร์หรือฟังก์ชัน
  • Executable Part : ในส่วนนี้เป็นการเขียนนิยามของโพรซีเดอร์หรือฟังก์ชันที่สร้างขึ้น ส่วนนี้ยังประกอบด้วยคำสั่ง PL/SQL หรือ SQL สำหรับกำหนดค่า จัดการข้อมูล และควบคุมการดำเนินการ
  • ส่วนการ จัดการข้อยกเว้น : ส่วนสุดท้ายนี้เป็นทางเลือกและในส่วนนี้คาดว่าจะเขียนข้อยกเว้นซึ่งอาจเกิดขึ้นระหว่างการดำเนินการของรหัสที่เขียนในส่วนที่ปฏิบัติการได้

ข้อดีของ Stored Procedure และ Function ใน PL SQL

ก่อนที่เราจะเปิดเผยตัวอย่างโพรซีเดอร์ PL SQL คุณต้องทำความคุ้นเคยกับข้อดีของโปรแกรมย่อยของโพรซีเดอร์และฟังก์ชันก่อน

  • เพิ่มประสิทธิภาพฐานข้อมูล : Oracle engine ช่วยในการคอมไพล์อัตโนมัติ นอกจากนี้ เมื่อใดก็ตามที่ขั้นตอนหรือฟังก์ชันการเรียก PL SQL เสร็จสิ้น เอ็นจิ้น Oracle จะโหลดโค้ดที่คอมไพล์แล้วใน SGA หรือ System Global Area ซึ่งช่วยให้ดำเนินการได้เร็วขึ้น
  • ใช้ซ้ำได้ และไม่ซ้ำซ้อน : จำนวนบรรทัดของโค้ดไม่สามารถเขียนซ้ำได้ เนื่องจากบล็อกโค้ดเดียวกันสำหรับโพรซีเดอร์หรือฟังก์ชันสามารถเรียกกี่ครั้งก็ได้บนข้อมูลหลายชุด
  • ความปลอดภัย : ความปลอดภัยของฐานข้อมูลยังได้รับการดูแลรักษาด้วยการใช้โพรซีเดอร์หรือฟังก์ชันที่เก็บไว้ เนื่องจากช่วยควบคุมการใช้งานและการเข้าถึงโดยให้สิทธิ์แก่ผู้ใช้ แม้ว่าจะไม่มีการอนุญาตให้แก้ไขหรือจัดการฐานข้อมูลแก่ผู้ใช้
  • ความสมบูรณ์ : ข้อดีอีกประการของการใช้โพรซีเดอร์หรือฟังก์ชันที่เก็บไว้ของ PL SQL คือทำให้มั่นใจได้ถึงความสมบูรณ์เนื่องจากถูกจัดเก็บเป็นวัตถุฐานข้อมูลโดยโปรแกรม Oracle
  • ประหยัดหน่วยความจำ: ข้อดีอย่างหนึ่งของขั้นตอนหรือฟังก์ชันที่จัดเก็บไว้คือการแบ่งปันหน่วยความจำซึ่งช่วยในการบันทึกหน่วยความจำเป็นสำเนาเดียวของขั้นตอนหรือฟังก์ชันที่สามารถโหลดโดยผู้ใช้จำนวนหนึ่งที่ได้รับอนุญาตให้ทำเช่นเดียวกัน

อ่านเพิ่มเติม: วิธีแก้ไขข้อผิดพลาด javascript:void(0)

ไวยากรณ์สำหรับการสร้างกระบวนงานที่เก็บไว้

คุณสามารถดูไวยากรณ์ด้านล่างที่ใช้สร้างกระบวนงานที่จัดเก็บไว้ใน Oracle:

 สร้างหรือแทนที่ขั้นตอน <procedure_name>
(<variable_name>เข้า/ออก/เข้า ออก <ชนิดข้อมูล>,
<variable_name>IN/OUT/IN OUT <ชนิดข้อมูล>,...) IS/AS
การประกาศตัวแปร/ค่าคงที่;
เริ่ม
-- เนื้อหาของโปรแกรมย่อย PL/SQL;
ข้อยกเว้น
-- บล็อกการจัดการข้อยกเว้น ;
จบ <procedure_name>; 

ไวยากรณ์เพื่อสร้างกระบวนงานที่เก็บไว้ใน oracle

ในรหัสด้านบน:

  • Procedure_name แทนชื่อโพรซีเดอร์
  • Variable_name แทนชื่อของตัวแปรที่ใช้ในกระบวนงานที่เก็บไว้
  • สร้าง หรือ แทนที่ขั้นตอน แทนคีย์เวิร์ดที่ใช้สำหรับระบุชื่อของขั้นตอนที่จะสร้าง
  • Begin , Exception และ End แสดงถึงคีย์เวิร์ดที่ใช้ระบุส่วนต่างๆ ของโพรซีเดอร์ที่ถูกสร้างขึ้น
  • IN/OUT/IN OUT แสดงถึงโหมดพารามิเตอร์ โดยที่ IN หมายถึงโหมด READ ONLY ซึ่งใช้สำหรับตัวแปรที่จะรับค่าจากผู้ใช้ นี่คือโหมดพารามิเตอร์เริ่มต้น
  • OUT หมายถึงโหมด WRITE ONLY ซึ่งใช้สำหรับตัวแปรที่คืนค่าให้กับผู้ใช้
  • IN OUT หมายถึงโหมด อ่าน และ เขียน ซึ่งใช้สำหรับตัวแปรที่จะรับค่าหรือส่งคืนค่าให้กับผู้ใช้
  • <procedure_name> แสดงถึงการสิ้นสุดของข้อกำหนดของโพรซีเดอร์ คุณยังสามารถใช้ END แทนได้

ตัวอย่างขั้นตอน PL SQL

สำหรับรหัสขั้นตอนด้านล่างนี้ ต่อไปนี้เป็นตัวอย่างง่ายๆ ที่จะแสดงให้เห็นอย่างชัดเจนถึงการใช้ขั้นตอนการจัดเก็บสำหรับการบวกเลขสองตัว:

 ตั้งค่าเอาต์พุตเซิร์ฟเวอร์บน;
สร้างหรือแทนที่ผลรวมของขั้นตอน (โดยที่หมายเลข IN, b หมายเลข IN) คือหมายเลขค;
เริ่ม
ค := a+b;
dbms_output.put_line ('ผลรวมของสอง nos= '|| c);
สิ้นสุด ผลรวม;

ในกรณีที่เรียกใช้โพรซีเดอร์ โค้ดต่อไปนี้จะถูกดำเนินการ:

 ตั้งค่าเอาต์พุตเซิร์ฟเวอร์บน;
ประกาศ
เลข x;
หมายเลข y;
เริ่ม
x := &x;
ย := &y;
ผลรวม(x,y);
จบ;
ที่ไหน:
ป้อนค่าสำหรับ x: 10
ป้อนค่าสำหรับ y: 20
ผลรวมของสองหมายเลข: 30

สร้างขั้นตอน PL SQL สำเร็จแล้ว

ไวยากรณ์สำหรับการสร้างฟังก์ชันใน PL SQL

เมื่อคุณทราบวิธีสร้างไวยากรณ์สำหรับกระบวนงานที่เก็บไว้และตัวอย่างแล้ว ก็ถึงเวลาอธิบายเกี่ยวกับการสร้างฟังก์ชันใน PL/SQL:

 สร้างหรือแทนที่ฟังก์ชัน <function_name>
(<variable_name> ใน <ชนิดข้อมูล>,
<variable_name> ใน <ประเภทข้อมูล>,...)
ส่งคืน <ประเภทข้อมูล> เป็น/เป็น
การประกาศตัวแปร/ค่าคงที่;
เริ่ม
-- เนื้อหาของโปรแกรมย่อย PL/SQL;
ข้อยกเว้น
-- บล็อกการจัดการข้อยกเว้น ;
สิ้นสุด <ชื่อฟังก์ชัน>; 

ไวยากรณ์เพื่อสร้างฟังก์ชัน

ในรหัสด้านบน:

  • Function_name แทนชื่อของฟังก์ชัน
  • Variable_name แทนชื่อตัวแปรสำหรับตัวแปรที่ใช้ในฟังก์ชัน
  • ฟังก์ชัน สร้าง หรือ แทนที่ แทนคีย์เวิร์ดที่ใช้เป็นชื่อของฟังก์ชันที่จะสร้าง
  • IN แสดงถึงโหมด READ ONLY ซึ่งใช้สำหรับตัวแปรที่จะรับค่าจากผู้ใช้ นี่คือพารามิเตอร์เริ่มต้น
  • Return แทนคีย์เวิร์ดที่ตามด้วยประเภทข้อมูลที่ระบุประเภทข้อมูลของค่าที่ฟังก์ชันจะส่งกลับ

อ่านเพิ่มเติม: แก้ไขคำสั่งล้มเหลวด้วยรหัสข้อผิดพลาด 1 ข้อมูล Python Egg

ตัวอย่างฟังก์ชัน PL SQL

ด้านล่างนี้เป็นตัวอย่างของฟังก์ชัน PL SQL ซึ่งสาธิตการใช้ฟังก์ชันสำหรับการบวกเลขสองตัว:

 ตั้งค่าเอาต์พุตเซิร์ฟเวอร์บน;
สร้างหรือแทนที่ผลรวมของฟังก์ชัน (a IN number, b IN number) Return Number IS
หมายเลขค;
เริ่ม
ค := a+b;
กลับ ค;
จบ; 

ฟังก์ชันเพิ่มไวยากรณ์ของตัวเลขสองตัว

ในกรณีที่เรียกใช้ฟังก์ชันผลรวม โค้ดต่อไปนี้จะถูกดำเนินการ:

 ตั้งค่าเอาต์พุตเซิร์ฟเวอร์บน;
ประกาศ
หมายเลข 1;
หมายเลข 2;
หมายเลขผลลัพธ์
เริ่ม
หมายเลข 1 := &no1;
no2 := &no2;
ผลลัพธ์ := ผลรวม(no1,no2);
dbms_output.put_line('ผลรวมของสอง nos='||result);
จบ;
ที่ไหน:
ใส่ค่าสำหรับ no1: 5
ป้อนค่าสำหรับ no2: 5
ผลรวมของสองหมายเลข: 10

สร้างขั้นตอน PL SQL สำเร็จแล้ว

ไวยากรณ์ในการเรียกใช้ผลรวมของฟังก์ชัน

อ่านหัวข้อถัดไปเพื่อทราบเกี่ยวกับขั้นตอนการออกจาก PL SQL

ขั้นตอนการออกจาก PL SQL คืออะไร

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

ความแตกต่างระหว่างขั้นตอนการจัดเก็บและฟังก์ชัน

เมื่อคุณทราบขั้นตอนและฟังก์ชันใน PL SQL แล้ว ในที่สุดก็ถึงเวลาที่จะต้องทราบความแตกต่างพื้นฐานระหว่างทั้งสองเช่นกัน:

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

ที่แนะนำ:

  • DDR4 vs DDR5 RAM: อะไรดีกว่าสำหรับการเล่นเกม?
  • เขียงหั่นขนมมีกี่ประเภท?
  • วิธีแยกวิเคราะห์ข้อความ
  • 4 วิธีในการแยกสตริงด้วยตัวคั่นใน SQL

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