Ahogy a hibákat az Oracle (PLSQL) kivételével, sqlerrm, sqlcode

Egy kis útmutató a hiba csapdázás Oracle PLSQL.
Leírást, hogyan kell használni az Oracle (PLSQL) SQLERRM és SQLCODE funkció fogására hibák kivétel. Szintaxis leírás és példa.







SQLERRM függvény hibaüzenetet társított utóbbi eredő kivétel (hiba).
SQLERRM funkció - nincsenek paraméterei.

SQLCODE függvény egy hiba kódja az utolsó felmerült kivételével (hiba)
SQLERRM funkció - nincsenek paraméterei.

Általában a kezelés EXCEPTION kivételével az alábbiak szerint:

Használhatja SQLERRM és SQLCODE funkció egy hibaüzenet, mint például ez:


Vagy lehet menteni az üzenetet a hiba következő táblázat tartalmazza:


Változatok az alapvető lehetőségek:

DUP_VAL_ON_INDEX
ORA-00001
Amikor megpróbálja Beszúr vagy UPDATE adatváltozás, amely létrehoz egy duplikált bejegyzés sérti az egyedi index (egyedi index).

TIMEOUT_ON_RESOURCE
ORA-00051
Ez akkor fordul elő, amikor az erőforrás, amelyen a műveletet blokkolva van, és ott volt egy reset timeout.







TRANSACTION_BACKED_OUT
ORA-00061
Volt egy részleges tranzakciót rollback.

INVALID_CURSOR
ORA-01001
Megpróbálja használni a kurzor helyére nem létezik. Akkor jelentkezik, ha megpróbálja használni a kurzor lekérés vagy a Bezárás kurzor előtt ezt kurzor megnyitott OPEN.

NOT_LOGGED_ON
ORA-01012
Próbálok akció Nem vagy bejelentkezve.

LOGIN_DENIED
ORA-01017
Sikertelen kísérlet be, hozzáférés megtagadva, hibás felhasználónév vagy jelszó.

NO_DATA_FOUND
ORA-01403
Mi akkor a következő: Próbálok beilleszteni SELECT INTO nem létező értékrend (válasszon - visszaadja semmi). Próbálunk elérni, nem inicializált sor / rekordok a táblázatban. Próbál olvasni egy rekord vége után a fájlt UTL_FILE csomagot.

TOO_MANY_ROWS
ORA-01422
Kísérlet, hogy helyezze az értéket változtatja a SELECT INTO és válassza ki a vissza egynél több jelentése.

INVALID_NUMBER
ORA-01722
Egy kísérlet végrehajtására SQL lekérdezés, amely átalakítja a vonal (STRING) a szám (NUMBER), ahol ilyen átalakítás lehetetlen.

STORAGE_ERROR
ORA-06500
Vagy nincs elég memória, vagy hiba a memóriában.

PROGRAM_ERROR
ORA-06501
Belső szoftveres hiba ajánlott kezelni ezt a hibát az Oracle Support.

VALUE_ERROR
ORA-06502
Kísérlet arra, hogy valamely művelet az adatok átalakítása, hogy véget ért a hiba (például kerekítés típusú átalakítás, stb.)

CURSOR_ALREADY_OPEN
ORA-06511
Próbál megnyitni egy kurzor már nyitva van.

Ez valószínűleg az összes.