Làm thế nào để tạo Function trong cơ sở dữ liệu Oracle Database ? Hôm nay chúng tôi sẽ hướng dẫn các bạn hiểu Hàm (Function) là gì và cách tạo hàm Function trong Oracle.
Function có nghĩa là Hàm trong Oracle.Hàm (Function) là một khối lệnh hay một chương trình con, bao gồm các lệnh nhằm thực hiện một chức năng nào đó để trả về một giá trị.Hàm chỉ được thực thi khi nó được gọi.
Hàm được tạo ra với mục đích để tái sử dụng mã code nhiều lần nhằm tiết kiệm thời gian cho người lập trình.Bạn có thể định nghĩa Hàm 1 lần và gọi nó ở nhiều nơi và nhiều lần.
Cú pháp để tạo hàm Function trong Oracle như sau:
CREATE [OR REPLACE] FUNCTION function_name
( parameter )
RETURN return_datatype
IS | AS
declaration_section
BEGIN
executable_section
EXCEPTION
exception_section
END function_name;
Giải thích:
-CREATE [OR REPLACE] FUNCTION: là lệnh tạo hàm
-function_name : là tên hàm mà bạn muốn tạo.
-parameter: là các tham để truyền vào bên trong hàm.
-return_datatype : là giá trị trả về của hàm Function.
-declaration_section : là phần khai báo các tham số, biến.
-executable_section: là phần thực hiện các lệnh và chức năng của hàm
-exception_section : là phần ngoại lệ, thông báo các lỗi ngoại lệ của hàm.
Ví dụ chúng ta cần tạo một hàm lấy tên nhân viên theo mã nhân viên.Nghĩa là khi chúng ta nhập mã nhân viên vào thì sẽ hiển thị tên nhân viên.
Sau đây là code PL/SQL tạo hàm lấy tên nhân viên theo mã nhân viên trong Oracle.
CREATE OR REPLACE FUNCTION F_GetNhanVienName
(pv_NhanvienID in HR.Nhanvien.Nhanvien_Id%type)
RETURN varchar2
IS
pv_NhanvienName HR.nhanvien.nhanvien_name%type;
BEGIN
SELECT n.nhanvien_name INTO pv_NhanvienName
FROM HR.nhanvien n
WHERE n.nhanvien_id = pv_NhanvienID;
return pv_NhanvienName;
EXCEPTION
when no_data_found then
dbms_output.put_line('Error: No Data');
when Too_Many_Rows then
dbms_output.put_line('Error: Many rows data');
when others then
dbms_output.put_line('Error Exception');
END F_GetNhanVienName;
Bạn có thể sử dụng một hàm ở bất kỳ đâu mà bạn cần sử dụng. Bạn có thể gọi một Hàm ở những nơi khác nhau, chẳng hạn như:
SELECT F_GetNhanVienName(10022) FROM dual
DECLARE
pv_NhanvienName varchar2(255) := '';
BEGIN
pv_NhanvienName := F_GetNhanVienName(10022);
DBMS_OUTPUT.PUT_LINE('Ten nhan vien la : ' || pv_NhanvienName);
END;
BEGIN
if F_GetNhanVienName(10022) = N'Hoàng Hồng Phong' then
DBMS_OUTPUT.PUT_LINE('Nhan vien Ok : ');
else
DBMS_OUTPUT.PUT_LINE('Nhan vien NG : ');
end if;
END;
Để chỉnh sửa và biên dịch lại một hàm Function, bạn làm theo các bước sau:
-Nhấp vào tên hàm F_GetNhanVienName mà bạn muốn chỉnh sửa sau đó chọn Edit để chỉnh sửa hàm, sau khi sửa xong Nhấn biểu tượng Execute hoặc F8 để biên dịch và lưu lại hàm.
Sử dụng lệnh DROP FUNCTION để xóa hàm Function trong Oracle PL/SQL.
DROP FUNCTION function_name ;
Ví dụ để xóa hàm F_GetNhanVienName như sau:
DROP FUNCTION F_GetNhanVienName;
Ngoài ra bạn cũng có thể xóa một hàm Function bằng chức năng DROP trong PL/SQL như sau: