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