sql >> Databáze >  >> RDS >> Oracle

Chyba Oracle ORA-06512

ORA-06512 je součástí zásobníku chyb. Udává nám číslo řádku, kde k výjimce došlo, ale ne příčinu výjimky. To je obvykle uvedeno ve zbytku balíčku (který jste stále nezaúčtovali).

V komentáři, který jste řekl

Váš kód dělá toto:

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

To znamená, že vyvolá výjimku, když pNum není mezi 12 a 14. Obsahuje tedy zbytek chybového zásobníku tento řádek?

Pokud ano, vše, co musíte udělat, je přidat blok výjimky pro zpracování chyby. Možná:

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;

Dokumentace se podrobně zabývá zpracováním výjimek PL/SQL.



  1. Rails migrace pro postgreSQL schémata

  2. Znovu uspořádat / resetovat primární klíč automatického zvýšení

  3. SQL:Najděte nejdelší společný řetězec mezi řádky

  4. PHP Skript posledního přihlášení