Desktop
Website
Multimedia
Database
Security
Enterprise
Pytanie : Wyjątek i Wyrocznia błąd wiadomość
Cześć Facet,
Given pismo pismo:
ScriptName: InsRecOnMytable.sql
--------------------------
------
DECLARE
ERR_MSG VARCHAR2 (4000);
SCRT_NAME VARCHAR2 (400): = "InsRecOnMytable.sql";
BEGIN
Wszywka w myschema.mytable (SCHEMAT, IMIĘ, KOMENTARZ, ORACLE
_TYPE, FUNC
TIONAL_TYP
E, WŁAŚCICIEL, DE
TAIL_OWNER
, IS_DYNAMI
C, DISPLAY_
NAME, ENTIT
Y_NAME)
wartość ("myschema", "mytable", "próbka stół (1)", "STÓŁ", "BASIC", "PRODUC
T", "PRODUC
T", (0), "Samp
le (1)", null);
Wszywka w myschema.mytable (SCHEMAT, IMIĘ, KOMENTARZ, ORACLE
_TYPE, FUNC
TIONAL_TYP
E, WŁAŚCICIEL, DE
TAIL_OWNER
, IS_DYNAMI
C, DISPLAY_
NAME, ENTIT
Y_NAME)
wartość ("myschema", "mytable", "próbka stół 2", "STÓŁ", "BASIC1", "PRODU
CT1", "PROD
UCT1", (1), "S
ample 2", null);
popełniać;
GrabErr (SCRT_NAME, "Sukces ");
END JEŻELI;
EXCEPTION
GDY DUP_VAL_ON_INDEX WTEDY -- rękojeść powielać rejestr error
wybrany
w ERR_MSG od podwójny;
GrabErr (SCRT_NAME, ERR_MSG); -- procedura który brać the ERR_MSG jako parameter
GDY WTEDY -- obchodzić się wszystkie inny errors
wybrany
w ERR_MSG od podwójny;
GrabErr (SCRT_NAME, ERR_MSG); -- procedura który brać the ERR_MSG jako parameter
OBNIŻKA;
END;
/
I właśnie potrzeba sposób sprawnie lub using zmienna the faktyczny WYROCZNIA błąd wiadomość wynikać od duplikat rejestr wynikać i znacząco, the kreskowy liczba dokąd the błąd zdarzać się dla debugging purposes.
the pismo kreskowy być pomysł tylko. Odczucie uwalniać pismo być the najlepszy rozwiązanie przez PL/SQL.
Using Plik-dziennik pracować ale the pomysł tutaj być że the GrabErr procedura aktualizować niektóre kolumna na stołowy mówić SCRIPTINFO the szczegół dla stołowy pismo. Jeżeli tam być sposób the Plik-dziennik i w tym samym czasie sprawnie cisza SCRIPTINFO stół, wtedy tak dużo better.
Something jak wtedy:
--------------------
SCRIPTINFO TABLE
----------------
ID IMIĘ EXEC_STATUS REMARKS
==========================
==========
==========
==========
==========
=========
1 InsRecOnMytable.sql NIE UDAĆ SIĘ
2 MyScriptInsert.sql
==========================
==========
==========
==========
==========
=========
Can robić jak robić zrobić?
Thanks w postęp,
jrmn
Odpowiedź : Wyjątek i Wyrocznia błąd wiadomość
Twój kod być TWÓJ, ale I polecać niektóre zmiana:
Tam być żadny potrzeba to:
wybiórka
w ERR_MSG od podwójny;
The błąd być w te zmienna: SQLCODE i SQLERRM, w ten sposób
WYJĄTEK
GDY DUP_VAL_ON_INDEX WTEDY -- rękojeść powielać rejestr błąd
GrabErr (SCRT_NAME, SQLCODE||''||SQLERRM);
OBNIŻKA; -- I dodawać tam ponieważ w procedura GrabErr tam powinienem AUTONOMICZNY TRANSAKCJA
GDY INNY WTEDY -- obchodzić się wszystkie inny błąd
GrabErr (SCRT_NAME, SQLCODE||''||SQLERRM);
OBNIŻKA;
KOŃCÓWKA;
W the procedura GrabErr use AUTONOMICZNY TRANSAKCJA.
Ty móc także twój swój podaniowy błąd.
Tutaj być więcej o wyjątek:
http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14261/errors.htm#i7014
Jeżeli ty chcieć the linia dokąd błąd zdarzać się wtedy dodawać zmienna e.g n_debug:
OZNAJMIAĆ
SCRT_NAME VARCHAR2 (400): = "InsRecOnMytable.sql";
n_debug PLS_INTEGER: =0;
ZACZYNAĆ
n_debug: =1;
Wszywka w myschema.mytable (SCHEMAT, IMIĘ, KOMENTARZ, ORACLE_TYPE
, FUNCTIONAL_TYPE
, WŁAŚCICIEL, DETAIL_OWNER
, IS_DYNAMIC
, DISPLAY_NAME
, ENTITY_NAME
)
wartość ("myschema", "mytable", "próbka stół (1)", "STÓŁ", "BASIC", "PRODUKT
", "PRODUKT
", (0), "Pobierać próbki
(1)", null);
n_debug: =2;
Wszywka w myschema.mytable (SCHEMAT, IMIĘ, KOMENTARZ, ORACLE_TYPE
, FUNCTIONAL_TYPE
, WŁAŚCICIEL, DETAIL_OWNER
, IS_DYNAMIC
, DISPLAY_NAME
, ENTITY_NAME
)
wartość ("myschema", "mytable", "próbka stół 2", "STÓŁ", "BASIC1", "PRODUCT1
", "PRODUCT1
", (1), "Pobierać próbki
2", null);
n_debug: =3;
popełniać;
GrabErr (n_debug, SCRT_NAME,
"Sukces ");
KOŃCZYĆ JEŻELI;
WYJĄTEK
GrabErr (n_debug, SCRT_NAME,
SQLCODE||''||SQLERRM);
OBNIŻKA;
GDY INNY WTEDY -- obchodzić się wszystkie inny błąd
GrabErr (n_debug, SCRT_NAME,
SQLCODE||''||SQLERRM);
OBNIŻKA;
KOŃCÓWKA;
I robić ono ten sposób. Ty móc także procedura z wkład parametr SCRT_NAME i zamiast pismo ty móc the procedura.
I mieć nadzieję ty być troszkę pomoc dla ty.
Inne rozwiązania
SUP7203B PFC niekompatybilność
system przywrócić punkt
IE8 Przedkładać Forma z [Wchodzić Do] Klucz, stosownie
zintegrowany wordpress w miejsce. blog pic doczepianie.
Łączyć XenServer wśród iPhone
Porzucony Windows 7 Instalacyjny odpowiedź kartoteka
SSH konsola: iść precyzować falcówka po nazwa użytkownika
Tworzyć Linux przygotowywać CD-R stylowy but dysk…
Dlaczego Sysinternals Wirusowy wyszukiwarka redirect?
MS Dojazdowy SQL Podział Dojazdowy obejście potrzebować