WHEN OTHERS clause

WHEN OTHERS clause

توضیحات

زمانی که exception اتفاق افتاده است ولی هیچ‌کدام از exception‌های تعریف شده توسط برنامه‌نویس یا اوراکل نیست می‌توان از دستور کلی when others استفاده کرد.

دستور

اکنون به دستور استفاده when others در تابع و پروسیجر می‌پردازیم:

۱۲۳۴۵۶۷۸۹۱۰۱۱۱۲۱۳۱۴۱۵۱۶۱۷۱۸۱۹۲۰۲۱۲۲۲۳۲۴۲۵۲۶۲۷۲۸۲۹۳۰۳۱۳۲۳۳۳۴۳۵۳۶۳۷۳۸۳۹۴۰۴۱۴۲۴۳۴۴۴۵ 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];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];

.


مثال

در مثال زیر پروسیجری که از یک 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 DUP_VAL_ON_INDEX THEN      raise_application_error (-۲۰۰۰۱,\'You have tried to insert a duplicate order_id.\');    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;

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