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

Anonim

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

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

-

สร้างหรือแทนที่ขั้นตอน procedename (parameters)

ตาม

เริ่มต้นงบ

;

ยกเว้น

exception_handling

end;

และนี่คือไวยากรณ์เพื่อสร้างฟังก์ชัน (ใน ORACLE),

สร้างหรือแทนที่ฟังก์ชัน function_name (parameters)

return return_datatype

เป็นคำสั่ง

เริ่มต้น

;

return return_value / variable;

ยกเว้น;

exception_handling;

end;

กระบวนงานที่จัดเก็บไว้

ดังที่ได้กล่าวมาแล้วขั้นตอนการจัดเก็บจะมีชื่อว่าบล็อคการเขียนโปรแกรม พวกเขายอมรับพารามิเตอร์เป็น input ของผู้ใช้และกระบวนการตามตรรกะที่อยู่เบื้องหลังขั้นตอนและให้ผล (หรือดำเนินการเฉพาะ) พารามิเตอร์เหล่านี้สามารถเป็น IN, OUT และ INOUT ได้ การประกาศตัวแปรการกำหนดตัวแปรคำสั่งควบคุมลูปการค้นหา SQL และฟังก์ชันอื่น ๆ / ขั้นตอน / แพคเกจการโทรสามารถอยู่ภายในตัวของกระบวนการ

Functions

ฟังก์ชันยังมีชื่อว่า blocks programming ซึ่งต้องคืนค่าโดยใช้คำสั่ง RETURN และก่อนที่มันจะส่งกลับค่าตัวของมันจะทำการกระทำบางอย่างด้วย (ตามตรรกะที่ระบุ) ฟังก์ชั่นยังยอมรับพารามิเตอร์ที่จะเรียกใช้ ฟังก์ชันสามารถเรียกได้ภายในการสืบค้นข้อมูล เมื่อฟังก์ชันถูกเรียกว่าภายในแบบสอบถาม SELECT จะใช้กับแต่ละแถวของชุดผลลัพธ์ของแบบสอบถาม SELECT มีหลายประเภทของฟังก์ชัน ORACLE ฟังก์ชันเหล่านี้ ได้แก่

ฟังก์ชันแถวเดี่ยว (ส่งกลับผลลัพธ์เดียวสำหรับแต่ละแถวของข้อความค้นหา)

  • มีประเภทย่อยของฟังก์ชันแถวเดียว

ฟังก์ชันวันที่ (เช่น: LAST_DAY, NEXT_DAY)

  • ฟังก์ชันการแปลง (เช่น TO_CHAR, TO_DATE)
  • ฟังก์ชันตัวเลข (เช่น ABS, SIN, COS)
  • ฟังก์ชันอักขระ (เช่น: CONCAT, INITCAP)
  • )
  • ฟังก์ชันการรวบรวม (เช่น: CARDINALITY, SET)
  • ฟังก์ชันรวม (แสดงแถวเดียวโดยขึ้นอยู่กับกลุ่มของแถวเช่น AVG, SUM, MAX)
  • ฟังก์ชันการวิเคราะห์
  • ฟังก์ชันอ้างอิงออบเจ็กต์
  • ฟังก์ชั่นของโมเดล
  • ฟังก์ชั่นที่ผู้ใช้กำหนด

ความแตกต่างระหว่างฟังก์ชั่นกับขั้นตอนที่เก็บไว้คืออะไร?

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

•ฟังก์ชั่นสามารถเรียกได้ว่าอยู่ในข้อความค้นหา แต่ไม่สามารถใช้ขั้นตอนที่จัดเก็บไว้ในแบบสอบถามได้

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