Tuesday, February 19, 2008

Oracle > Exception Handling


CREATE OR REPLACE PROCEDURE myproc IS

BEGIN
NULL;
/*IF MOD(inval, 2) = 1 THEN
RAISE oddno;
ELSE
RAISE evenno;
END IF;*/
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN ZERO_DIVIDE THEN
emesg := SQLERRM;
dbms_output.put_line(emesg);
WHEN OTHERS THEN
ecode := SQLCODE;
dbms_output.put_line(thisproc || ' - ' || ecode);
WHEN too_long THEN
dbms_output.put_line('More Than 11 Characters');
RETURN 'FALSE';
WHEN too_short THEN
dbms_output.put_line('Less Than 11 Characters');
RETURN 'FALSE';
WHEN delimiter THEN
dbms_output.put_line('Incorrect Delimiter');
RETURN 'FALSE';
WHEN OTHERS THEN
dbms_output.put_line('Some Other Issue');
RETURN 'FALSE';
WHEN evenno THEN
dbms_output.put_line(TO_CHAR(inval) || ' is even');
WHEN oddno THEN
dbms_output.put_line(TO_CHAR(inval) || ' is odd');
END;

No comments: