pt7 exception

17
EXCEPTION RA. Paramita Mayadewi, S.Kom,M.T. MI2163-Dasar Pemrograman Basisdata Prodi D3 Manajemen Informatika Fakultas Ilmu Terapan Universitas Telkom

Upload: thamheeta

Post on 11-Nov-2015

218 views

Category:

Documents


2 download

DESCRIPTION

Exception PL/SQL

TRANSCRIPT

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 ??