توضیحات
Named system exception خطایی است که توسط Pl/Sql نامگذاری شده است، و در پکیج استاندارد قرار دارند و نیازی نیست کاربر به آنها نامی اختصاص دهد.
دستور
در ادامه استفاده از Exceptionها را در یک تابع و پروسیجر مشاهده میکنیم:
| ۱۲۳۴۵۶۷۸۹۱۰۱۱۱۲۱۳۱۴۱۵۱۶۱۷۱۸۱۹۲۰۲۱۲۲۲۳۲۴۲۵۲۶۲۷۲۸۲۹۳۰۳۱۳۲۳۳۳۴۳۵۳۶۳۷۳۸۳۹۴۰۴۱۴۲۴۳۴۴۴۵ | CREATE [OR REPLACE] FUNCTION function_name [ (parameter [,parameter]) ] RETURN return_datatypeIS | AS [declaration_section] BEGIN executable_section EXCEPTION WHEN exception_name۱ THEN [statements] WHEN exception_name۲ THEN [statements] WHEN exception_name_n THEN [statements] WHEN OTHERS THEN [statements] END [function_name];CREATE [OR REPLACE] PROCEDURE procedure_name [ (parameter [,parameter]) ]IS [declaration_section] BEGIN executable_section EXCEPTION WHEN exception_name۱ THEN [statements] WHEN exception_name۲ THEN [statements] WHEN exception_name_n THEN [statements] WHEN OTHERS THEN [statements] END [procedure_name]; |
.
مثال
مثالی از پروسیجری که از named system exception استفاده کرده است:
| ۱۲۳۴۵۶۷۸۹۱۰۱۱۱۲۱۳۱۴۱۵۱۶ | CREATE OR REPLACE PROCEDURE add_new_supplier (supplier_id_in IN NUMBER, supplier_name_in IN VARCHAR۲)IS BEGIN INSERT INTO suppliers (supplier_id, supplier_name ) VALUES ( supplier_id_in, supplier_name_in ); EXCEPTION WHEN DUP_VAL_ON_INDEX THEN raise_application_error (-۲۰۰۰۱,\'You have tried to insert a duplicate supplier_id.\'); WHEN OTHERS THEN raise_application_error (-۲۰۰۰۲,\'An error has occurred inserting a supplier.\'); END; |