Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

PL/SQL - Exemplo de erro de aplicativo de aumento


Um exemplo é dado aqui para gerar um erro de aplicativo (raise_application_error) no procedimento armazenado PL/SQL se a determinada condição não corresponder. O programa irá gerar uma exceção se a comissão (comm) for nula na tabela EMP para determinado número de funcionário (empno).

Raise_Application_Error no exemplo de PL/SQL

CREATE OR REPLACE PROCEDURE compute_sal (i_EMPNO IN emp.empno%TYPE)ISCURSOR c_emp (p_empno emp.empno%TYPE)ISSELECT sal, commFROM empWHERE empno =p_empno;v_sal NUMBER;v_comm NUMBER;BEGINOPEN c_emp (i_empno);FETCH c_empINTO v_sal, v_comm;CLOSE c_emp;IF v_comm IS NULLTHENraise_application_error (-20001, 'Comissão é nula.');END IF;DBMS_OUTPUT.put_line('O salário total é:' || (v_sal + v_comm));END compute_sal;/ 

Executar

SET SERVEROUTPUT ON;BEGINCOMPUTE_SAL(7369);END;/

Saída

SQL> SET SERVEROUTPUT ON;SQL> BEGIN2 COMPUTE_SAL(7369);3 END;4 /BEGIN*ERROR na linha 1:ORA-20001:Comissão é nula.ORA-06512:em "SCOTT.COMPUTE_SAL", linha 16ORA -06512:na linha 2

Veja também:
  1. Encontre o número da linha de erro em PL/SQL
  2. Um exemplo de gatilho On-Error no Oracle Forms
  3. Guia de instalação do banco de dados Oracle 12c de erro