0% found this document useful (0 votes)
25 views

Handling Exception

The document discusses handling exceptions in Oracle PL/SQL. It provides examples of predefined exceptions like TOO_MANY_ROWS and non-predefined exceptions defined with EXCEPTION_INIT. It also demonstrates trapping exceptions using the WHEN OTHERS clause and logging error codes and messages. Functions are presented for handling exceptions within PL/SQL blocks.

Uploaded by

dweet33k4
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views

Handling Exception

The document discusses handling exceptions in Oracle PL/SQL. It provides examples of predefined exceptions like TOO_MANY_ROWS and non-predefined exceptions defined with EXCEPTION_INIT. It also demonstrates trapping exceptions using the WHEN OTHERS clause and logging error codes and messages. Functions are presented for handling exceptions within PL/SQL blocks.

Uploaded by

dweet33k4
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 6

Basis Data Lanjut

Handling Exception Kartika Dwi Hapsari

Slide 4 :
Example of an Exception SET SERVEROUTPUT ON DECLARE lname VARCHAR2(15); BEGIN SELECT last_name INTO lname FROM employees WHERE first_name='John'; DBMS_OUTPUT.PUT_LINE ('John''s last name is : ' ||lname); EXCEPTION WHEN TOO_MANY_ROWS THEN DBMS_OUTPUT.PUT_LINE (' Your select statement retrieved multiple rows. Consider using a cursor.'); END; Hasilnya :

Revisi : DECLARE lname VARCHAR2(15); BEGIN SELECT last_name INTO lname FROM employees WHERE first_name='John'; DBMS_OUTPUT.PUT_LINE ('John''s last name is : ' ||lname); EXCEPTION WHEN TOO_MANY_ROWS THEN DBMS_OUTPUT.PUT_LINE (' Your select statement retrieved multiple rows. Consider using a cursor.'); END;
1

Kartika Dwi Hapsari | 105060809111003

Basis Data Lanjut


Handling Exception Kartika Dwi Hapsari

Hasilnya :

Slide 15 :
Non-Predefined Error SET SERVEROUTPUT ON DECLARE insert_excep EXCEPTION; PRAGMA EXCEPTION_INIT(insert_excep, -01400); BEGIN INSERT INTO departments(department_id, department_name) VALUES (280, NULL); EXCEPTION WHEN insert_excep THEN DBMS_OUTPUT.PUT_LINE('INSERT OPERATION FAILED'); DBMS_OUTPUT.PUT_LINE(SQLERRM); END; Hasilnya :

Kartika Dwi Hapsari | 105060809111003

Basis Data Lanjut


Handling Exception Kartika Dwi Hapsari

Revisi : DECLARE insert_excep EXCEPTION; PRAGMA EXCEPTION_INIT(insert_excep, -01400); BEGIN INSERT INTO departments(department_id, department_name) VALUES (280, NULL); EXCEPTION WHEN insert_excep THEN DBMS_OUTPUT.PUT_LINE('INSERT OPERATION FAILED'); DBMS_OUTPUT.PUT_LINE(SQLERRM); END; Hasilnya :

Slide 17 :
Functions for Trapping Exceptions DECLARE error_code NUMBER; error_message VARCHAR2(255); BEGIN ... EXCEPTION ... WHEN OTHERS THEN ROLLBACK; error_code := SQLCODE ; error_message := SQLERRM ; INSERT INTO errors (e_user, e_date, error_code, error_message) VALUES(USER,SYSDATE,error_code, error_message); END;
Kartika Dwi Hapsari | 105060809111003

Basis Data Lanjut


Handling Exception Kartika Dwi Hapsari

Revisi : DECLARE kode_error NUMBER; pesan_error VARCHAR2(255); nama VARCHAR2(10); gaji NUMBER := 17000; BEGIN SELECT first_name INTO nama FROM employees WHERE salary=gaji; DBMS_OUTPUT.PUT_LINE ('Gaji : ' ||gaji); DBMS_OUTPUT.PUT_LINE ('Nama : ' ||nama); EXCEPTION WHEN TOO_MANY_ROWS THEN DBMS_OUTPUT.PUT_LINE ('Jumlah row dari filter lebih dari satu'); kode_error := SQLCODE ; pesan_error := SUBSTR(SQLERRM, 1, 255); DBMS_OUTPUT.PUT_LINE('error code : ' ||kode_error); DBMS_OUTPUT.PUT_LINE('error message : ' ||pesan_error); END; Hasilnya :

Kartika Dwi Hapsari | 105060809111003

Basis Data Lanjut


Handling Exception Kartika Dwi Hapsari

Slide 24 :
Executable section BEGIN ... DELETE FROM employees WHERE manager_id = v_mgr; IF SQL%NOTFOUND THEN RAISE_APPLICATION_ERROR(-20202, 'This is not a valid manager'); END IF; ... Revisi : DECLARE v_mgr NUMBER :=1001; BEGIN DELETE FROM employees WHERE manager_id = v_mgr; IF SQL%NOTFOUND THEN RAISE_APPLICATION_ERROR(-20202,'This is not a valid manager'); END IF; END; Hasilnya :

Kartika Dwi Hapsari | 105060809111003

Basis Data Lanjut


Handling Exception Kartika Dwi Hapsari

Slide 24 :
Exception section ... EXCEPTION WHEN NO_DATA_FOUND THEN RAISE_APPLICATION_ERROR (-20201, 'Manager is not a valid employee.'); END; Revisi : DECLARE mgr_name VARCHAR2(10); mgr_id NUMBER:=1001; BEGIN SELECT first_name INTO mgr_name FROM employees WHERE manager_id=mgr_id; DBMS_OUTPUT.PUT_LINE('Steven is an employee of ' || mgr_name); EXCEPTION WHEN NO_DATA_FOUND THEN RAISE_APPLICATION_ERROR (-20201,'Manager is not a valid employee.'); END; Hasilnya :

Kartika Dwi Hapsari | 105060809111003

You might also like