sql >> Database teknologi >  >> RDS >> Oracle

Oracle-fejl ORA-06512

ORA-06512 er en del af fejlstakken. Det giver os linjenummeret, hvor undtagelsen fandt sted, men ikke årsagen til undtagelsen. Det er normalt angivet i resten af ​​stakken (som du stadig ikke har postet).

I en kommentar sagde du

Nå, din kode gør dette:

IF ((pNum < 12) OR (pNum > 14)) THEN     
    RAISE vSOME_EX;
 

Det vil sige, det rejser en undtagelse, når pNum ikke er mellem 12 og 14. Så inkluderer resten af ​​fejlstakken denne linje?

Hvis det er tilfældet, er alt hvad du skal gøre at tilføje en undtagelsesblok for at håndtere fejlen. Måske:

PROCEDURE PX(pNum INT,pIdM INT,pCv VARCHAR2,pSup FLOAT) AS vSOME_EX EXCEPTION; BEGIN IF ((pNum < 12) OR (pNum > 14)) THEN RAISE vSOME_EX; ELSE EXECUTE IMMEDIATE 'INSERT INTO M'||pNum||'GR (CV, SUP, IDM'||pNum||') VALUES('||pCv||', '||pSup||', '||pIdM||')'; END IF; exception when vsome_ex then raise_application_error(-20000 , 'This is not a valid table: M'||pNum||'GR'); END PX;

Dokumentationen dækker dybdegående håndtering af PL/SQL-undtagelser.



  1. Codeigniters insert_batch() med tusindvis af inserts har manglende poster

  2. Oracle - Bedste SELECT-sætning til at få forskellen i minutter mellem to DateTime-kolonner?

  3. MySQL:tjek hvilken version:32 bit eller 64 bit?

  4. SQL Server In-Memory OLTP:Grundlæggende