Oracle PL/SQL Create Function

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.

  1. Function trong Oracle là gì?
  2. Cách tạo hàm Function trong Oracle PL/SQL.
  3. Cách gọi hàm Function trong Oracle PL/SQL
  4. Cách sửa và update hàm Function trong Oracle PL/SQL.
  5. Cách xóa hàm Function trong Oracle PL/SQL.

 

1.Function trong Oracle là gì?

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.

 

2.Cách tạo hàm Function trong Oracle Database.

Cú pháp để tạo hàm Function trong Oracle như sau:

Cú pháp tạo hàm Function

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ụ tạo hàm Fucntion trong Oracle.

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.

Ví dụ tạo Function trong PL/SQL 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;

 

3.Cách gọi hàm Function trong Oracle Database.

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ư:

- Cách gọi Hàm Function trong PL/SQL Oracle với câu lệnh SQL

Ví dụ 

SELECT F_GetNhanVienName(10022)  FROM  dual

-Cách gọi Hàm Funtcion trong PL/SQL Oracle với câu lệnh gán:

Ví dụ 

DECLARE

    pv_NhanvienName varchar2(255) := '';

BEGIN

    pv_NhanvienName := F_GetNhanVienName(10022);

    DBMS_OUTPUT.PUT_LINE('Ten nhan vien la : ' || pv_NhanvienName);

END;

-Cách gọi Hàm Fucntion trong PL/SQL Oracle với biểu thức so sánh:

Ví dụ 

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;

 

4.Cách sửa hàm Function trong Oracle Database.

Để 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.

 

5.Cách xóa hàm Function trong Oracle Database.

Sử dụng lệnh DROP FUNCTION để xóa hàm Function trong Oracle PL/SQL. 

Cú pháp 

DROP FUNCTION  function_name ;

Ví dụ để xóa hàm F_GetNhanVienName như sau:

Ví dụ 

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: