Съдържание
Описание в базата данни на 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 )