Oracle
 sql >> база данни >  >> RDS >> Oracle

Грешка на Oracle ORA-06512

ORA-06512 е част от стека за грешки. Той ни дава номера на реда, където е възникнало изключението, но не и причината за изключението. Това обикновено се посочва в останалата част от стека (който все още не сте публикували).

В коментар казахте

Е, вашият код прави това:

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

Това означава, че предизвиква изключение, когато pNum не е между 12 и 14. Така че останалата част от стека за грешки включва ли този ред?

Ако е така, всичко, което трябва да направите, е да добавите блок за изключение, за да се справите с грешката. Може би:

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;

Документацията обхваща обработката на 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. Задействане в Oracle за автоматично увеличаване на поле и вмъкване в таблица за асоцииране

  2. Дата и час на Oracle във VB.net

  3. simpleJdbcCall извикване на Pl/SQL процедура -- ORA-22922 несъществуваща LOB стойност

  4. Как да промените таблицата в Oracle

  5. Миграция на данни между различни СУБД