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:
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:
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.