Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Błąd Oracle ORA-06512

ORA-06512 jest częścią stosu błędów. Podaje nam numer wiersza, w którym wystąpił wyjątek, ale nie przyczynę wyjątku. Jest to zwykle wskazane w pozostałej części stosu (której jeszcze nie zaksięgowałeś).

W komentarzu, który powiedziałeś

Cóż, twój kod robi to:

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

Oznacza to, że zgłasza wyjątek, gdy pNum nie jest między 12 a 14. Czy reszta stosu błędów zawiera tę linię?

Jeśli tak, wszystko, co musisz zrobić, to dodać blok wyjątku, aby obsłużyć błąd. Być może:

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;

Dokumentacja szczegółowo opisuje obsługę wyjątków PL/SQL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tabela przeglądowa DATE (1990/01/01:2041/12/31)

  2. Oracle, jak zaimportować brakujące klasy java podczas wywoływania java z plsql

  3. Jak przeprowadzić instalację instancji EBS 12.2 Vision

  4. Oracle automatycznie zmienia nazwy kolumn z wybierz?

  5. lista rozdzielana przecinkami PL/SQL; usuń dupy i umieść w tablicy