【Exception】:own error message

yellowlee發表於2009-04-05

CREATE OR REPLACE PROCEDURE p_test_raise_salary(emp_id NUMBER,
                                                amount NUMBER) AS
  curr_sal varchar2(30);
BEGIN
  SELECT dual.dummy INTO curr_sal FROM dual;
  IF curr_sal IS not NULL THEN
    /* Issue user-defined error message. */
    raise_application_error(-20101, 'Salary is missing');
  ELSE
    dbms_output.put_line('test');
  END IF;
END p_test_raise_salary;

for pro c:

EXEC SQL EXECUTE
/* Execute embedded PL/SQL block using host
variables my_emp_id and my_amount, which were
assigned values in the host environment. */
DECLARE
null_salary EXCEPTION;
/* Map error number returned by raise_application_error
to user-defined exception. */
PRAGMA EXCEPTION_INIT(null_salary, -20101);
BEGIN
raise_salary(:my_emp_id, :my_amount);
EXCEPTION
WHEN null_salary THEN
INSERT INTO emp_audit VALUES (:my_emp_id, ...);
END;
END-EXEC;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16179598/viewspace-584816/,如需轉載,請註明出處,否則將追究法律責任。

相關文章