Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

PL / SQL - Ví dụ về lỗi ứng dụng nâng cao

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:

  1. Tìm số dòng lỗi trong PL / SQL
  2. Ví dụ về trình kích hoạt On-Error trong Oracle Forms
  3. Lỗi hướng dẫn cài đặt cơ sở dữ liệu Oracle 12c
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Con trỏ cho vòng lặp với câu lệnh SQL động

  2. Có cần thiết phải vứt bỏ DbCommand sau khi sử dụng không?

  3. Oracle Entity Framework - Tạo thực thể từ các bảng trong các lược đồ khác nhau

  4. Hàm REPLACE () trong Oracle

  5. Biểu tượng nhà phát triển SQL