ขั้นตอนการจัดเก็บเทียบกับฟังก์ชั่น
ขั้นตอนและฟังก์ชันที่เก็บไว้เป็นบล็อกการเขียนโปรแกรมสองประเภท ทั้งสองคนต้องมีชื่อเรียก ชื่อการโทรเหล่านี้ใช้เพื่อเรียกพวกเขาภายในบล็อกการเขียนโปรแกรมอื่น เช่น ฟังก์ชันของโพรซีเดอร์และแพ็คเกจ หรือการสืบค้น SQL ออบเจ็กต์ทั้งสองประเภทนี้ยอมรับพารามิเตอร์และทำงานเบื้องหลังอ็อบเจ็กต์เหล่านั้น นี่คือไวยากรณ์ (ใน ORACLE) เพื่อสร้างกระบวนงานที่เก็บไว้
สร้างหรือแทนที่ชื่อขั้นตอน (พารามิเตอร์)
เป็น
เริ่ม
statements;
ยกเว้น
exception_handling
จบ;
และนี่คือรูปแบบการสร้างฟังก์ชัน (ใน ORACLE)
สร้างหรือแทนที่ฟังก์ชัน function_name (พารามิเตอร์)
return return_datatype
เป็น
เริ่ม
statements;
ผลตอบแทน return_value/ตัวแปร;
ยกเว้น;
exception_handling;
จบ;
ขั้นตอนการจัดเก็บ
ดังที่กล่าวไว้ข้างต้นว่าขั้นตอนการจัดเก็บมีชื่อว่าบล็อกการเขียนโปรแกรม พวกเขายอมรับพารามิเตอร์เป็นการป้อนข้อมูลของผู้ใช้และดำเนินการตามตรรกะที่อยู่เบื้องหลังขั้นตอนและให้ผลลัพธ์ (หรือดำเนินการเฉพาะ) พารามิเตอร์เหล่านี้อาจเป็นประเภท IN, OUT และ INOUT การประกาศตัวแปร การกำหนดตัวแปร คำสั่งควบคุม ลูป การสืบค้น SQL และฟังก์ชัน/ขั้นตอน/การเรียกแพ็กเกจอื่นๆ สามารถอยู่ภายในเนื้อหาของโพรซีเดอร์ได้
ฟังก์ชั่น
Functions ยังถูกตั้งชื่อว่า programming blocks ซึ่งจะต้องคืนค่าโดยใช้คำสั่ง RETURN และก่อนที่จะส่งกลับค่า ตัวของมันจะดำเนินการบางอย่างเช่นกัน (ตามตรรกะที่กำหนด) ฟังก์ชันยังยอมรับพารามิเตอร์เพื่อเรียกใช้ สามารถเรียกใช้ฟังก์ชันภายในแบบสอบถามได้ เมื่อมีการเรียกใช้ฟังก์ชันภายในคิวรี SELECT ฟังก์ชันดังกล่าวจะนำไปใช้กับแต่ละแถวของชุดผลลัพธ์ของคิวรี SELECT ฟังก์ชัน ORACLE มีหลายประเภท พวกเขาคือ
ฟังก์ชันแถวเดียว (ส่งกลับผลลัพธ์เดียวสำหรับการค้นหาแต่ละแถวและทุกแถว)
มีหมวดหมู่ย่อยของฟังก์ชันแถวเดียว
- ฟังก์ชันตัวเลข (เช่น ABS, SIN, COS)
- ฟังก์ชันอักขระ (เช่น CONCAT, INITCAP)
- ฟังก์ชันวันที่และเวลา (เช่น LAST_DAY, NEXT_DAY)
- ฟังก์ชันการแปลง (เช่น TO_CHAR, TO_DATE)
- ฟังก์ชั่นการรวบรวม (เช่น: CARDINALITY, SET)
- ฟังก์ชันรวม (ส่งกลับแถวเดียว ตามกลุ่มของแถว เช่น AVG, SUM, MAX)
- ฟังก์ชันวิเคราะห์
- ฟังก์ชั่นอ้างอิงวัตถุ
- ฟังก์ชั่นโมเดล
- ฟังก์ชั่นที่กำหนดโดยผู้ใช้
ฟังก์ชั่นและขั้นตอนการจัดเก็บต่างกันอย่างไร
• ทุกฟังก์ชันต้องคืนค่าโดยใช้คำสั่ง RETURN กระบวนงานที่เก็บไว้ไม่คืนค่าโดยใช้คำสั่ง RETURN คำสั่ง RETURN ภายในโพรซีเดอร์จะส่งคืนการควบคุมไปยังโปรแกรมที่เรียก พารามิเตอร์ OUT สามารถใช้เพื่อคืนค่าจากกระบวนงานที่เก็บไว้
• ฟังก์ชันสามารถเรียกใช้ในเคียวรีได้ แต่โพรซีเดอร์ที่เก็บไว้ไม่สามารถใช้ในเคียวรีได้
• ต้องรวมประเภทข้อมูล RETURN เพื่อสร้างฟังก์ชัน แต่จะไม่รวมอยู่ในขั้นตอนการจัดเก็บ DDL