Teradata - ขั้นตอนที่จัดเก็บ

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

ข้อดี

  • โพรซีเดอร์ที่จัดเก็บไว้ลดภาระเครือข่ายระหว่างไคลเอนต์และเซิร์ฟเวอร์

  • ให้ความปลอดภัยที่ดีขึ้นเนื่องจากข้อมูลถูกเข้าถึงผ่านโพรซีเดอร์ที่จัดเก็บไว้แทนที่จะเข้าถึงโดยตรง

  • ให้การบำรุงรักษาที่ดีขึ้นเนื่องจากตรรกะทางธุรกิจได้รับการทดสอบและจัดเก็บไว้ในเซิร์ฟเวอร์

การสร้างขั้นตอน

กระบวนงานที่เก็บไว้ถูกสร้างขึ้นโดยใช้คำสั่ง CREATE PROCEDURE

ไวยากรณ์

ต่อไปนี้เป็นไวยากรณ์ทั่วไปของคำสั่ง CREATE PROCEDURE

CREATE PROCEDURE <procedurename> ( [parameter 1 data type, parameter 2 data type..] ) 
BEGIN 
   <SQL or SPL statements>; 
END;

ตัวอย่าง

พิจารณาตารางเงินเดือนต่อไปนี้

พนักงาน ขั้นต้น การหักเงิน NetPay
101 40,000 4,000 36,000
102 80,000 6,000 74,000
103 90,000 7,000 83,000
104 75,000 5,000 70,000

ตัวอย่างต่อไปนี้สร้างกระบวนงานที่จัดเก็บชื่อ InsertSalary เพื่อยอมรับค่าและแทรกลงในตารางเงินเดือน

CREATE PROCEDURE InsertSalary ( 
   IN in_EmployeeNo INTEGER, IN in_Gross INTEGER, 
   IN in_Deduction INTEGER, IN in_NetPay INTEGER 
) 
BEGIN 
   INSERT INTO Salary ( 
      EmployeeNo, 
      Gross, 
      Deduction, 
      NetPay 
   ) 
   VALUES ( 
      :in_EmployeeNo, 
      :in_Gross, 
      :in_Deduction, 
      :in_NetPay 
   ); 
END;

การดำเนินการตามขั้นตอน

กระบวนงานที่จัดเก็บจะดำเนินการโดยใช้คำสั่ง CALL

ไวยากรณ์

ต่อไปนี้เป็นไวยากรณ์ทั่วไปของคำสั่ง CALL

CALL <procedure name> [(parameter values)];

ตัวอย่าง

ตัวอย่างต่อไปนี้เรียกกระบวนงานที่เก็บไว้ว่า InsertSalary และแทรกระเบียนไปยังตารางเงินเดือน

CALL InsertSalary(105,20000,2000,18000);

เมื่อดำเนินการค้นหาข้างต้นแล้วจะสร้างผลลัพธ์ต่อไปนี้และคุณจะเห็นแถวที่แทรกในตารางเงินเดือน

พนักงาน ขั้นต้น การหักเงิน NetPay
101 40,000 4,000 36,000
102 80,000 6,000 74,000
103 90,000 7,000 83,000
104 75,000 5,000 70,000
105 20,000 2,000 18,000