sql >> Databáze >  >> RDS >> Database

Jak deklarovat uživatelsky definovat výjimku pomocí PRAGMA EXCEPTION_INIT

Jak bylo uvedeno v úvodu PL/SQL Exception Handling, existují tři způsoby, jak deklarovat uživatelem definované výjimky. Mezi těmito třemi způsoby jsme se již naučili první dva způsoby, které deklarují uživatelsky definovanou výjimku pomocí

  1. Zvýšit prohlášení a
  2. Postup Raise_Application_Error

Jediný způsob, který nyní zbývá k diskusi, je deklarování výjimek definovaných uživatelem pomocí funkce PRAGMA EXCEPTION_INIT v databázi Oracle.

V tomto tutoriálu PL/SQL se tedy naučíme, jak deklarovat uživatelsky definovanou výjimku PL/SQL v databázi Oracle pomocí funkce PRAGMA EXCEPTION_INIT.

Co je PRAGMA EXCEPTION_INIT?

Pragma Exception_Init je dvoudílný příkaz, kde první část tvoří klíčové slovo PRAGMA a druhá část je volání Exception_Init.

Klíčové slovo PRAGMA

Pragma je direktiva kompilátoru, která označuje, že příkazy následované klíčovým slovem PRAGMA jsou příkazy direktivy kompilátoru, což znamená, že příkaz bude zpracován v době kompilace, nikoli za běhu.

PRAGMA Exception_Init

Exception_init vám pomůže přiřadit název výjimky k číslu chyby Oracle. Jinými slovy můžeme říci, že pomocí Exception_Init můžete výjimku pojmenovat.

Proč pojmenovávat výjimku?

Ano, existuje způsob, jak deklarovat uživatelsky definovanou výjimku bez názvu, a to pomocí procedury Raise_Exception_Error. Toto je skutečně jednoduchý a snadný způsob, ale jak jsme se v minulém tutoriálu naučili, že ke zpracování výjimek bez názvu používáme obslužný program výjimek OTHERS.

Nyní si představte, že ve vašem projektu máte několik výjimek a také bez názvu. Pro zpracování všech těchto výjimek máte jeden obslužný program výjimek s názvem OTHERS. V tomto případě při výskytu podmínky výjimky kompilátor zobrazí zásobník chyb vytvořený obslužnou rutinou OTHER.

Dokážete si představit, jak obtížné bude vysledovat tu část vašeho projektu, která způsobuje chybu. Abyste mohli tuto část vysledovat, musíte projít každý a každý řádek vašeho kódu. Bude to pouhá ztráta času.

Můžete ušetřit veškeré úsilí, které plýtvá časem, pouhým pojmenováním výjimky, takže můžete navrhnout obslužnou rutinu výjimky specifickou pro název vaší výjimky, která bude snadno dohledatelná. To je výhoda pojmenování výjimky.

Syntaxe Pragma Exception_Init.

PRAGMA EXCEPTION_INIT (exception_name, error_number);

Příklad:Deklarace uživatelem definované výjimky pomocí Pragma Exception_Init

DECLARE
  ex_age    EXCEPTION;
  age       NUMBER    := 17;
  PRAGMA EXCEPTION_INIT(ex_age, -20008);
BEGIN
  IF age<18 THEN
    RAISE_APPLICATION_ERROR(-20008, 'You should be 18 or above for the drinks!');
  END IF;
  
  DBMS_OUTPUT.PUT_LINE('Sure! What would you like to have?');
  
  EXCEPTION WHEN ex_age THEN
    DBMS_OUTPUT.PUT_LINE(SQLERRM);   
END;
/

Tento příklad jsem podrobně vysvětlil ve svém výukovém videu na svém kanálu YouTube a požádal bych vás, abyste se na výukový program podívali tam.

Proč používat PRAGMA EXCEPTION_INIT s RAISE_APPLICATION_ERROR?

Ačkoli není povinné používat PRAGMA EXCEPTION_INIT s procedurou RAISE_APPLICATION_ERROR, jedná se spíše o osobní preference než o programovací pravidlo. Pokud chcete vytisknout chybovou zprávu s číslem chyby, jako je standardní způsob zobrazení chyby společnosti Oracle, pak je nejlepším postupem použít PRAGMA EXCEPTION_INIT s postupem RAISE_APPLICATION_ERROR.

Ale pokud chcete pouze vytisknout chybovou zprávu a ne číslo chyby, můžete použít PRAGMAEXCEPTION_INIT s příkazem RAISE.

Toto je výukový program PL/SQL o tom, jak deklarovat uživatelsky definovanou výjimku v databázi Oracle pomocí PRAGMA EXCEPTION_INIT. Doufám, že jste se naučili něco nového. Pokud vám tento návod připadá informativní, sdílejte ho na svých sociálních sítích. Děkuji a přeji hezký den!


  1. Export dat do Excelu z tabulky Oracle pomocí PL SQL

  2. Jak vypočítat celkový součet v MySQL

  3. MySQL přidat jedinečné omezení

  4. Použití pravidel polí pomocí klasifikace