Czy Raise_application_error wycofuje?
Czy Raise_application_error wycofuje?

Wideo: Czy Raise_application_error wycofuje?

Wideo: Czy Raise_application_error wycofuje?
Wideo: PL/SQL tutorial 48: Declare User-Define Exception using RAISE_APPLICATION_ERROR 2024, Listopad
Anonim

Wewnątrz spustu a RAISE_APPLICATION_ERROR robi nie wykonywać COFNIĘCIE , przerywa bieżącą operację, czyli pojedynczą UPDATE/INSERT/DELETE. A Wycofanie cofa wszystkie zmiany w ramach bieżącej transakcji (lub do danego punktu zapisu), to co innego.

W ten sposób, czym jest Raise_application_error?

Odpowiedz na podnieść_błąd_aplikacji jest w rzeczywistości procedurą zdefiniowaną przez Oracle, która umożliwia programiście zgłoszenie wyjątku i powiązanie numeru błędu i komunikatu z procedurą. Oracle zapewnia podnieść_błąd_aplikacji procedura pozwalająca na podniesienie niestandardowych numerów błędów w aplikacjach.

Co więcej, co się stanie, gdy wewnątrz wyzwalacza zostanie wykonana instrukcja wycofania? Kiedy cyngiel odpala bieżąca transakcja nadal nie jest zakończona. Ponieważ COMMIT kończy transakcję, pozwalając im w wyzwalaczach złamać jednostkę pracy. Więc zmiany wykonywane w wyzwalaczu są zatwierdzone (lub wycofane) przez transakcję będącą właścicielem, która wydała DML, który uruchomił cyngiel.

W związku z tym, jaka jest różnica między Pragma Exception_init a Raise_application_error?

pragma wyjątek init zamienia błąd Oracle w nazwany wyjątek. Jeśli operacja na bazie danych zgłosi komunikat ORA-00054 „zajęty zasób”, będziesz musiał zakodować:. Podnieś_błąd_aplikacji służy do ZGŁASZANIA błędu - wyjątek_init służy do radzenia sobie z błędami (chyba można powiedzieć, że są przeciwieństwami) w sposób).

Co to jest sqlerrm?

SQLERRM Funkcjonować. Funkcja SQLERRM zwraca komunikat o błędzie związany z argumentem numer błędu. Jeśli argument zostanie pominięty, zwraca komunikat o błędzie powiązany z bieżącą wartością SQLCODE. SQLERRM bez argumentu jest użyteczny tylko w obsłudze wyjątków.

Zalecana: