Named Programmer-Defined Exception

Named Programmer-Defined Exception

توضیحات

گاهی نیاز است که برنامه‌نویس خود exception را تعریف کند که در پکیج استاندارد وجود ندارد.

دستور

در ادامه استفاده از name programmer-defined exception را در تابع و پروسیجر بررسی می‌کنیم:

۱۲۳۴۵۶۷۸۹۱۰۱۱۱۲۱۳۱۴۱۵۱۶۱۷۱۸۱۹۲۰۲۱۲۲۲۳۲۴۲۵۲۶۲۷۲۸۲۹۳۰۳۱۳۲۳۳۳۴۳۵۳۶۳۷۳۸۳۹۴۰۴۱ CREATE [OR REPLACE] PROCEDURE procedure_name   [ (parameter [,parameter]) ]IS   [declaration_section]    exception_name EXCEPTION; BEGIN   executable_section   RAISE exception_name; EXCEPTION   WHEN exception_name THEN      [statements]    WHEN OTHERS THEN      [statements] END [procedure_name];CREATE [OR REPLACE] FUNCTION function_name   [ (parameter [,parameter]) ]   RETURN return_datatype IS | AS   [declaration_section]    exception_name EXCEPTION; BEGIN   executable_section    RAISE exception_name; EXCEPTION   WHEN exception_name THEN      [statements]    WHEN OTHERS THEN      [statements] END [function_name];

.


مثال

در مثال زیر پروسیجری که از یک named programmer-defined exception استفاده کرده است را مشاهده می‌کنیم:

۱۲۳۴۵۶۷۸۹۱۰۱۱۱۲۱۳۱۴۱۵۱۶۱۷۱۸۱۹۲۰۲۱۲۲ CREATE OR REPLACE PROCEDURE add_new_order   (order_id_in IN NUMBER, sales_in IN NUMBER)IS   no_sales EXCEPTION; BEGIN   IF sales_in = ۰ THEN      RAISE no_sales;    ELSE      INSERT INTO orders (order_id, total_sales )      VALUES ( order_id_in, sales_in );   END IF; EXCEPTION   WHEN no_sales THEN      raise_application_error (-۲۰۰۰۱,\'You must have sales in order to submit the order.\');    WHEN OTHERS THEN      raise_application_error (-۲۰۰۰۲,\'An error has occurred inserting an order.\'); END;

در این مثال یک named programmer-defined exception به نام no_sales
تعریف کرده‌ایم:

۱ no_sales EXCEPTION;

سپس شرط اجرایexception را گفته‌ایم :

۱۲ IF sales_in = ۰ THEN   RAISE no_sales;

اگر متغیر sales_in دارای مقدار صفر باشد به قسمت exception می‌رود.

نوشته‌های مشابه

  • Open cursor

    توضیحات بعد از این‌که cursor را تعریف کردیم قدم بعدی باز کردن آن است. دستور با دستور زیر می‌توان یک cursor را باز کرد: ۱ OPEN cursor_name; . مثال مثالی از استفاده از cursor: ۱ OPEN c۱;

  • BEFOR DELETE Triger

    توضیحات BEFOR DELETE Trigger به معنی این است که قبل از اجرای یک دستور delete، یک تریگر فعال (fire) شود. دستور دستور Befor delete triger به صورت زیر نوشته می‌شود: ۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ CREATE [ OR REPLACE ] TRIGGER trigger_name BEFORE DELETE…

  • NVL

    توضیحات این تابع این امکان را می‌دهد تا در صورت null بودن یک مقدار با مقداری دیگر جایگزین شود. دستور تابع NVL به صورت زیر نوشته می‌شود: ۱ NVL( string۱, replace_with ) . . مثال مثالی از خروجی تابع NVL را مشاهده می‌کنیم: ۱ ۲ ۳ ۴ ۵ SELECT NVL(supplier_city, \’n/a\’) FROM suppliers; SELECT supplier_id,…

  • | |

    اینترنت اشیا چیست؟ (IOT)

    اینترنت اشیا تحول دیجیتال؛ یادگیری ماشین؛ دستگاه های هوشمند مرتبط با اینترنت؛ دستگاه های هوشمند. در این مقاله به توضیح اینترنت اشیا می پردازیم. اینترنت اشیا (IOT)، شبکه ای گسترده از سنسورهای ارتباطی و وسایل اکترونیک هوشمند است که با تحلیل های پیشرفته داده ها ترکیب شده اند. تحلیل داده های تولید شده توسط این…

  • MONTHS_BETWEEN

    توضیحات این تابع تعداد ماه‌های میان دو تاریخ را بر می‌گرداند. دستور تابع MONTHS_BETWEEN به صورت زیر نوشته می‌شود: ۱ MONTHS_BETWEEN( date۱, date۲ ) . مثال مثالی از خروجی تابع MONTHS_BETWEEN را مشاهده می‌کنیم: ۱ ۲ ۳ ۴ ۵ MONTHS_BETWEEN (TO_DATE (\’۲۰۰۳/۰۱/۰۱\’, \’yyyy/mm/dd\’), TO_DATE (\’۲۰۰۳/۰۳/۱۴\’, \’yyyy/mm/dd\’) ) -۲.۴۱۹۳۵۴۸۳۸۷۰۹۶۸ MONTHS_BETWEEN (TO_DATE (\’۲۰۰۳/۰۷/۰۱\’, \’yyyy/mm/dd\’), TO_DATE (\’۲۰۰۳/۰۳/۱۴\’, \’yyyy/mm/dd\’)…

  • ATAN۲

    توضیحات این تابع آرک تانژانت n و m را برمی‌گرداند. دستور تابع ATAN۲  به صورت زیر نوشته می‌شود: ۱ ATAN۲( n, m ) . مثال مثالی از خروجی تابع ATAN را مشاهده می‌کنیم: ۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ATAN۲(۰.۲, ۰.۳) Result: ۰.۵۸۸۰۰۲۶۰۳۵۴۷۵۶۸ ATAN۲(۰.۳۵, -۰.۱۵) Result: ۱.۹۷۵۶۸۸۱۱۳۰۷۹۹۸ ATAN۲(-۰.۳, -۰.۴) Result: -۲.۴۹۸۰۹۱۵۴۴۷۹۶۵۱