Oracle Raise_Application_error Funkcja

Oracle Raise_Application_error Funkcja
Jeśli chodzi o rozwój, zawsze istnieje miejsce na błędy, niezależnie od tego, czy jest to błąd aplikacji, czy błąd związany z użytkownikiem. Jako deweloper będziesz musiał przewidzieć, gdzie może wystąpić błąd, i podjąć działania wcześniej. Powszechnie znany jako obsługa błędów, proces ten może pozwolić aplikacji działać płynnie, nawet gdy błąd występuje bez przedwczesnego zakończenia.

W tym artykule dowiesz się o jednej z procedur obsługi błędów w bazie danych Oracle o nazwie Raise_Application_error.

Oracle Raise_Application_error Procedura

Raise_application_error w Oracle to procedura przechowywana, która umożliwia podniesienie komunikatów o błędach zdefiniowanych przez użytkownika.

Podczas pracy z bazą danych Oracle mogłeś natknąć się na komunikat o błędzie, taki jak ten w następujący sposób:

[42000] [904] ORA-00904: „HI”: Nieprawidłowy identyfikator

Ten rodzaj błędu jest znany jako błąd silnika bazy danych. Jest zdefiniowany w bazie danych Oracle i podniesiony, gdy wystąpi dany błąd.

Korzystając z procedury Raise_Application_error, Oracle pozwala nam zdefiniować nasze niestandardowe wiadomości za pomocą określonego kodu błędu i komunikatu.

Może to być bardzo przydatne, gdy wystąpi konkretny błąd i chcesz powiadomić użytkownika o opisowym komunikacie o błędzie. Oznacza to, że nie będziesz bezbronić wyjątków błędu bez stwierdzenia o tym, co się stało.

Procedura Składnia i parametry

Poniższy fragment kodu ustanawia składnię procedury Raise_Application_ERROR:

Raise_Application_error (
error_number,
wiadomość,
[True | FAŁSZ]
);

Procedura składa się z trzech głównych parametrów:

  1. Error_number - ten parametr reprezentuje określoną wartość liczb całkowitą, która jest odwzorowana na kod błędu. Wartość tego parametru wynosi od -20000 do -20999.
  2. Komunikat - jest to wartość ciągu, która oznacza zdefiniowany przez użytkownika komunikat o błędzie do wyświetlenia użytkownikowi. Wartość parametru wiadomości ma długość do 70 bajtów.
  3. KeeperRorstack - Ten parametr jest wartością logiczną, która określa, czy stos błędów należy zachować. Domyślnie procedura nie utrzymuje stosu błędów.

Uwaga: Zachowanie stosu błędów oznacza, że ​​błąd jest dodawany do serii poprzednich błędów. Jeśli stos nie jest zachowany, nowy komunikat o błędzie zastępuje wszystkie poprzednie błędy.

Poniżej przedstawiono kilka istotnych punktów, na które należy zwrócić uwagę na procedurę Raise_Application_ERROR:

  1. Silnik bazy danych automatycznie i natychmiast zatrzymuje wykonywanie bloku nadrzędnego, gdy napotyka procedurę przechowywaną Rasion_Application_error.
  2. Procedura zmusza cofanie wszystkich operacji wykonanych do parametrów wyjściowych.
  3. Funkcja procedury procedury Raise_Application_error nie wpływa na globalne struktury danych, takie jak obiekty bazy danych. Jeśli jednak chcesz wykonać cofanie takich obiektów, musisz wyraźnie wywołać operację wycofania.

Przykład Wykorzystanie procedury składowej Raise_Application_error

W tym przykładzie zademonstrujemy, jak korzystać z procedury Raise_Application_error za pomocą schematu HR.

https: // dokumenty.wyrocznia.com/cd/b13789_01/serwer.101/B10771/Scripts003.HTM

Rozważ następujący podany kod źródłowy:

Utwórz lub zastąp procedurę Check_Commission (
numer emp_id
)
Jest
Pracownicy fname.Pierwsza nazwa_nazwa%;
Pracownicy EM.Typ%e -mail;
Pracownicy SAL.Rodzaj%wynagrodzenia;
Pracownicy prowizji.Commission_pct%typu;
zaczynać
Wybierz nazwę pierwszej nazwy, e -mail, wynagrodzenie, komisja_pct
w fname, em, sal, prowizja
od pracowników
gdzie pracownicy_id = emp_id;
Jeśli prowizja jest null, to
Raise_Application_error (-20002, „Null Commission Procentempontaż!!'|| emp_id);
zakończyć, jeśli;
wyjątek
Kiedy inni wtedy
Dbms_output.Put_line („sqlCode:” || sqlCode);
Dbms_output.Put_line ('sqLerrm:' || sqLerrm);
koniec;

Poprzedni przykład zaczyna się od utworzenia procedury, która akceptuje identyfikator pracownika. Następnie używamy pracownika, aby wybrać wartości od pracowników. Na koniec używamy oświadczenia IF, aby sprawdzić, czy prowizja otrzymanego wiersza jest null. Jeśli to prawda, podnosimy wyjątek.

Możemy wywołać procedurę z docelowym identyfikatorem pracującym:

Call Check_Commission (100);

Wyjście:

SQLCODE -438
SQLERRM: SQL0438N Zastosowany błąd lub ostrzeżenie z tekstem diagnostycznym: „Procent prowizji zerowej:. Sqlstate = UD030

Wniosek

W tym samouczku nauczyłeś się, jak korzystać z procedury przechowywanej Rasion_Application_error, aby podnieść niestandardowe komunikaty o błędach.