Một ví dụ được đưa ra ở đây để tăng lỗi ứng dụng (raise_application_error) trong quy trình được lưu trữ PL / SQL nếu điều kiện nhất định không khớp. Chương trình sẽ đưa ra một ngoại lệ nếu hoa hồng (dấu phẩy) là rỗng trong bảng EMP cho số nhân viên nhất định (empno).
Raise_Application_Error trong Ví dụ PL / SQL
CREATE OR REPLACE PROCEDURE compute_sal (i_EMPNO IN emp.empno%TYPE) IS CURSOR c_emp (p_empno emp.empno%TYPE) IS SELECT sal, comm FROM emp WHERE empno = p_empno; v_sal NUMBER; v_comm NUMBER; BEGIN OPEN c_emp (i_empno); FETCH c_emp INTO v_sal, v_comm; CLOSE c_emp; IF v_comm IS NULL THEN raise_application_error (-20001, 'Commission is null.'); END IF; DBMS_OUTPUT.put_line ('Total salary is: ' || (v_sal + v_comm)); END compute_sal; /
Thực thi
SET SERVEROUTPUT ON; BEGIN COMPUTE_SAL(7369); END; /
Đầu ra
SQL> SET SERVEROUTPUT ON; SQL> BEGIN 2 COMPUTE_SAL(7369); 3 END; 4 / BEGIN * ERROR at line 1: ORA-20001: Commission is null. ORA-06512: at "SCOTT.COMPUTE_SAL", line 16 ORA-06512: at line 2
Xem thêm:
- Tìm số dòng lỗi trong PL / SQL
- Ví dụ về trình kích hoạt On-Error trong Oracle Forms
- Lỗi hướng dẫn cài đặt cơ sở dữ liệu Oracle 12c