Post on 11-Nov-2015
description
ENTERPRISE ARCHITECTURE PLANNING DALAM PENYUSUNAN IT STRATEGIC PLAN DI FAKULTAS ILMU TERAPAN, UNIVERSITAS TELKOM
EXCEPTIONRA. Paramita Mayadewi, S.Kom,M.T.MI2163-Dasar Pemrograman BasisdataProdi D3 Manajemen InformatikaFakultas Ilmu TerapanUniversitas TelkomTujuan PembelajaranMampu mendefinisikan PL/SQL exceptionMemahami fungsi exceptionMemahami ruang lingkup exceptionMampu menerapkan exception dalam blok PL/SQL
Pengertian ExceptionException merupakan kesalahan PL/SQL yang dibangkitkan selama eksekusi programException dalam Oracle dalam dibangkitkan dalam 2 cara:1. Secara implisit yang dilakukan oleh server Oracle2. Secara eksplisit oleh programPenanganan Exception
Struktur ExceptionEXCEPTION WHEN exception_1 [OR exception_2 [OR ...]] THENstatemen-statemen;WHEN exception_a [OR exception_b [OR ...]] THENstatemen-statemen;WHEN OTHERS THENstatemen-statemen;
Tipe ExceptionPredefined ExceptionUser Defined ExceptionNon-Predefined Exception
Predefined ExceptionException bawaan dari Oracle databaseContoh predefined exception:NO_DATA_FOUNDTOO_MANY_ROWSINVALID_CURSORZERO_DIVIDEDUP_VAL_ON_INDEX
Predefined Exception
Predefined ExceptionContoh Predefined ExceptionDECLARE Var1 NUMBER; Var2 VARCHAR2(30);BEGINSELECT employee_id, last_name INTO Var1, Var2 FROM Employees;DBMS_OUTPUT.PUT_LINE (Var1||' '||Var2);
EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE ('Data tidak ditemukan'); WHEN TOO_MANY_ROWS THEN DBMS_OUTPUT.PUT_LINE ('Lebih dari satu data ditemukan');END;Non Predefined Exception
nama_exception EXCEPTION;PRAGMA EXCEPTION_INIT (nama_exception,nomor_error);
Non Predefined ExceptionContoh Non Predefined ExceptionDECLARE 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;User Defined Exception
User Defined ExceptionDECLARE invalid_department EXCEPTION; name VARCHAR2(20) := '&name'; deptno NUMBER := &deptno; BEGIN UPDATE departments SET department_name = name WHERE department_id = deptno; IF SQL%NOTFOUND THEN RAISE invalid_department; END IF; COMMIT; EXCEPTION WHEN invalid_department THEN DBMS_OUTPUT.PUT_LINE('Departemen ID salah'); END;ReferensiFeuerstein, Steven, and Bill Pribyl. Oracle PL/SQL Programming, 5th Edition. Sebastopol: O'Reilly Media, 2009.Srivastava, Tulika, and Sunitha Patel. Oracle Database 10g: PL/SQL Fundamental 2nd Edition. Boston: Oracle Publisher, 2006.Urman, Scott, Ron Hardman, and Michael Laughlin. Oracle Database 10g PL/SQL Programming. Boston: McGraw-Hill, 2004.Question ??