คู่มือฉบับสมบูรณ์เกี่ยวกับขั้นตอนและฟังก์ชันใน PL SQL
เผยแพร่แล้ว: 2023-01-30ภาษาโปรแกรมเป็นระบบสำหรับการเขียนโปรแกรมคอมพิวเตอร์ แม้ว่าภาษาโปรแกรมหลายภาษาจะเป็นแบบข้อความ แต่ภาษาอื่นๆ ก็อาจเป็นกราฟิกได้เช่นกัน ภาษาเหล่านี้ช่วยให้โปรแกรมเมอร์สามารถสื่อสารกับคอมพิวเตอร์ได้ 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 คืออะไร
- วิธีสร้าง 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>;
ในรหัสด้านบน:
- 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 และอื่นๆ หากเราช่วยเหลือคุณในทางใดทางหนึ่งหรือมีคำถามเพิ่มเติมจากฝ่ายคุณ โปรดแสดงความคิดเห็นด้านล่างเพื่อแจ้งให้เราทราบ