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

Как да разрешите ORA-06512 на ред номер

Съдържание

Описание в базата данни на Oracle

ORA-06512 в oracle е една от често срещаните грешки, наблюдавани в PLSQL програмите в базата данни на Oracle

Ето какво казва документацията на Oracle за тази грешка

Справка:Документация на Oracle

Можете да намерите това винаги, като напишете по-долу в Unix

oerr ORA 06512

Обяснение на грешката ORA-06512:

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

ORA 6512 не показва действителната грешка, а номера на реда на необработената грешка в PLSQL кода. ORA-6512 обикновено се появява в стека от съобщения, в който предходното съобщение назовава причината за грешката, като например в следния пример:

ORA-06502:PL/SQL:числова или стойностна грешка ORA-06512:на линия 1112

В горното маркирана в жълто грешка е основната грешка

Причини за грешка ORA-06512:

Опциите за разрешаване на тази грешка на Oracle са:

1) Поправете условието, което причинява необработената грешка.
2) Напишете манипулатор на изключение за тази необработена грешка.
3) Свържете се с вашия Oracle DBA за помощ.

Примери за ORA-06512:

Нека да видим няколко примера как да работим върху него

CREATE OR PROCEDURE Testora_procASSite_name varchar2(5);beginsite_name :='techgoeasy.com';end;/Procedure created.sql> Exec Testora_procERROR на ред 1:ORA-06502:PL/SQL:числова или стойностна грешка:символ буферът на низовете е твърде малък ORA-06512:на ред 5

В дадения по-горе пример процедурата се компилира успешно, но дава грешки по време на изпълнение

Така че действителната грешка е грешката

ORA-06502:PL/SQL:числова или стойностна грешка:буферът за низ от знаци е твърде малък

Можем лесно да го коригираме, като увеличим размера на променливата

СЪЗДАВАНЕ ИЛИ ЗАМЕНЯТЕ ПРОЦЕДУРА Testora_procASSite_name varchar2(20);beginsite_name :='techgoeasy.com';end;/Procedure created.SQL> Exec TestoraprocPL/SQL процедурата е завършена успешно.

Можем да решим това и с помощта на манипулатора на изключения

СЪЗДАВАНЕ ИЛИ ЗАМЕНЯТЕ ПРОЦЕДУРА Testora_procASSite_name varchar2(5);beginsite_name :='techgoeasy.com';ИЗКЛЮЧЕНИЕ, КОГАТО ДРУГИ THENsite_name :='tech';end;/Procedure created.SQL>Exec Testoraproc<;Процедурата Exec Testoraproc<;PL/SQL успешно завърши. /предварително> 

Друг пример би бил

СЪЗДАДЕТЕ ИЛИ ЗАМЕНЕТЕ ПРОЦЕДУРА Testora_procASnode_name varchar2(5); beginselect node в node_name от db_node;end;/Procedure createdSQL> Exec Testora_proc;ORA-01422:точното извличане връща повече от искания брой редове ORA-06512:на „NODE_NAME“, ред 4ORA-06512:на ред 1

Тук ORA-01422 е истинската грешка. имаме повече от 1 ред в таблицата db_node и получаваме множество стойности за node. Така че една корекция може да ограничава един ред

СЪЗДАДЕТЕ ИЛИ ЗАМЕНЕТЕ ПРОЦЕДУРА Testora_procASnode_name varchar2(5);започнете да изберете възел в име_възел от db_node, където rownum <2;end;/Procedure createdSQL> Exec Testora_proc;PL/SQL процедурата е завършена успешно.

Друг пример би бил

СЪЗДАДЕТЕ ИЛИ ЗАМЕНЕТЕ ПРОЦЕДУРА Testora_procASnode_name varchar2(5);започнете да изберете възел в име на възел от db_node;end;/Procedure createdSQL> Exec Testora_proc;ORA-01403:няма намерени данни ORA-06512:на „NODE_NAME“, ред 4ORA-06512:на ред 1

Тук ORA-01403 е истинската грешка. нямаме редове в таблицата на оракула db_node и получаваме грешка при липса на намерени данни. Така че една корекция може да бъде поставянето на обработка на изключения

СЪЗДАДЕТЕ ИЛИ ЗАМЕНЕТЕ ПРОЦЕДУРА Testora_procASnode_name varchar2(5);започнете да избирате възел в име_възел от db_node, където rownum <2;ИЗКЛЮЧЕНИЕ, КОГАТО NO_DATA_FOUND  THEN node_name :='tech'; край; /Procedure createdSQL> Exec Testora_proc;PL/SQL процедурата е завършена успешно.

Още някои примери могат да бъдат на SYS.UTL_FILE

SQL> declareF_LOG utl_file.file_type;beginF_LOG :=utl_file.fopen('TESTDIR','k', 'w');end;/ 2 3 4 5 6declare*ERROR на ред 1:ORA-29283 :невалидна файлова операция ORA-06512:на "SYS.UTL_FILE", ред 536ORA-29283:невалидна файлова операцияORA-06512:на ред 4

Тук основната грешка е ORA-29283. Проверете решението, като щракнете върху връзката

Надяваме се да ви хареса тази публикация на ORA-6512 Съобщение за грешка

Сродни статии
ORA-00911
ORA-03113
ORA-00257
ORA-27154
ORA-29913
ORA-20001 в Съберете статистически данни за схемата на 11g(FND_HISTOGRAM_COLS )

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изберете стойност на xml елемент в Oracle

  2. Деактивирайте всички ограничения на таблицата в Oracle

  3. какво е oracle EBS R12

  4. Обработка на данни за семена в R12.2 онлайн кръпка

  5. Предайте списък с цели числа от C# в съхранената процедура на Oracle