ตอนที่ 16 : การสร้าง Function บน Oracle Database (Oracle : Function) ปกติแล้ว Function บน Oracle มีอยู่หลายตัวให้เรียกใช้งานได้เลย เช่น LOWER , CONCAT , REPLACE , SUBSTRING และอื่น ๆ แต่สำหรับ Function บน Oracle ที่เราจะพูดถึง Function ที่จะสร้างขึ้นมาใช้งานเอง โดยจะมีรูปแบบเหมือนกับการเขียน Function บนโปรแกรมทั่ว ๆ ไป คือ ฟังก์ชั่นจะเป็นรูปแบบการทำงานที่เสร็จสิ้นภายในตัวเอง พร้อมกับทำการ Return ค่ากลับไปตามชนิดหรือ Data Type ที่ได้ประกาศไว้
โครงสร้างของตาราง CUSTOMER
Table : CUSTOMER
Create Function Syntax
CREATE OR REPLACE FUNCTION function_name RETURN data_type
AS
BEGIN
RETURN ;
END FUNCTION_NAME ;
Example : ตัวอย่างการสร้าง Function แบบง่าย ๆ
การสร้าง Function สามารถสร้างได้จากเมนู Function บน Oracle SQL Developer โดยเลือก Functions -> New Function
CREATE OR REPLACE FUNCTION DIFF_AMOUNT(pAmount1 DECIMAL, pAmount2 DECIMAL)
RETURN DECIMAL
AS
diffAmount DECIMAL(18,2) DEFAULT '0';
BEGIN
diffAmount := pAmount1 - pAmount2;
RETURN diffAmount;
END DIFF_AMOUNT;
จากคำสั่งนี้ FUNCTION นี้จะเป็นการรับค่า 2 ค่าแล้วนำมาลบกัน พร้อมกับ Return ค่าที่ได้กลับไป
รายการ Function ที่ถูกสร้างจะอยู่ใน List ของ Functions
ทดสอบการทำงาน
SELECT DIFF_AMOUNT(2000, 500) As TOTAL_DIFF FROM DUAL;
ผลลัพธ์ที่ได้
นอกจากนี้ยังสามารถใช้ FUNCTION ร่วมกับ SQL Query ได้เช่นเดียวกัน เช่น จากตาราง CUSTOMER จะมีคอลัมบ์ BUDGETและ USED เราจะสร้างคอลัมบ์ใหม่โดยเป็นค่าที่มาจากฟังก์ชั้นของ DIFF_AMOUNT()
SELECT T.*,DIFF_AMOUNT(BUDGET, USED) AS TOTAL_DIFF FROM CUSTOMER T;