Inhoudsopgave
Beschrijving in Oracle-database
ORA-06512 in orakel is een van de meest voorkomende fouten in PLSQL-programma's in de Oracle-database
Dit is wat de Oracle-documentatie over deze fout zegt
Referentie:Oracle-documentatie
Je kunt dit altijd vinden door hieronder in Unix te typen
oerr ORA 06512
Uitleg van de ORA-06512-fout:
Fout ORA-06512 betekent het backtrace-bericht terwijl de stapel wordt afgewikkeld door onverwerkte uitzonderingen in uw PLSQL-code. Dit is een verzamelfout voor alle PLSQL-uitzonderingen en wordt vaak gezien.
ORA 6512 geeft niet de werkelijke fout aan, maar het regelnummer van de onverwerkte fout in de PLSQL-code. ORA-6512 verschijnt meestal in een berichtenstack waarin het voorgaande bericht de reden voor de fout noemt, zoals in het volgende voorbeeld:
ORA-06502: PL/SQL: numeric or value error ORA-06512: at line 1112
In het bovenstaande is de geel gemarkeerde fout de belangrijkste fout
Redenen voor ORA-06512-fout:
De opties om deze Oracle-fout op te lossen zijn:
1) Los de voorwaarde op die de onverwerkte fout veroorzaakt.
2) Schrijf een uitzonderingshandler voor deze onverwerkte fout.
3) Neem contact op met uw Oracle DBA voor hulp.
Voorbeelden van ORA-06512:
Laten we een paar voorbeelden bekijken om eraan te werken
CREATE OR REPLACE PROCEDURE Testora_proc AS Site_name varchar2(5); begin site_name := 'techgoeasy.com'; end; / Procedure created. sql> Exec Testora_proc ERROR at line 1: ORA-06502: PL/SQL: numeric or value error: character string buffer too small ORA-06512: at line 5
In het bovenstaande voorbeeld is de procedure succesvol gecompileerd, maar het gaf fouten tijdens de uitvoering
Dus de werkelijke fout is de fout
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
We kunnen het gemakkelijk corrigeren door de variabele te vergroten
CREATE OR REPLACE PROCEDURE Testora_proc AS Site_name varchar2(20); begin site_name := 'techgoeasy.com'; end; / Procedure created. SQL> Exec Testoraproc PL/SQL procedure successfully completed.
We kunnen dit ook oplossen met de exception handler
CREATE OR REPLACE PROCEDURE Testora_proc AS Site_name varchar2(5); begin site_name := 'techgoeasy.com'; EXCEPTION WHEN OTHERS THEN site_name := 'tech'; end; / Procedure created.SQL>Exec Testoraproc; PL/SQL procedure successfully completed.
Een ander voorbeeld zou zijn
CREATE OR REPLACE PROCEDURE Testora_proc AS node_name varchar2(5); begin select node into node_name from db_node; end; / Procedure created SQL> Exec Testora_proc; ORA-01422: exact fetch returns more than requested number of rows ORA-06512: at “NODE_NAME”, line 4 ORA-06512: at line 1
Hier is ORA-01422 de echte fout. we hebben meer dan 1 rij in de db_node-tabel en krijgen meerdere waarden voor node. Dus een oplossing kan een rij beperken
CREATE OR REPLACE PROCEDURE Testora_proc AS node_name varchar2(5); begin select node into node_name from db_node where rownum <2; end; / Procedure created SQL> Exec Testora_proc; PL/SQL procedure successfully completed.
Een ander voorbeeld zou zijn
CREATE OR REPLACE PROCEDURE Testora_proc AS node_name varchar2(5); begin select node into node_name from db_node; end; / Procedure created SQL> Exec Testora_proc; ORA-01403: no data found ORA-06512: at “NODE_NAME”, line 4 ORA-06512: at line 1
Hier is ORA-01403 de echte fout. we hebben geen rijen in de Oracle-tabel db_node en we krijgen geen gegevens gevonden fout. Dus een oplossing zou het afhandelen van uitzonderingen kunnen zijn
CREATE OR REPLACE PROCEDURE Testora_proc AS node_name varchar2(5); begin select node into node_name from db_node where rownum <2; EXCEPTION WHEN NO_DATA_FOUND THEN node_name := 'tech'; end; / Procedure created SQL> Exec Testora_proc; PL/SQL procedure successfully completed.
Er staan nog wat voorbeelden op SYS.UTL_FILE
SQL> declare F_LOG utl_file.file_type; begin F_LOG := utl_file.fopen('TESTDIR','k', 'w'); end; / 2 3 4 5 6 declare * ERROR at line 1: ORA-29283: invalid file operation ORA-06512: at "SYS.UTL_FILE", line 536 ORA-29283: invalid file operation ORA-06512: at line 4
Hier is de belangrijkste fout ORA-29283. Controleer de oplossing door op de link te klikken
Ik hoop dat je dit bericht leuk vindt op ORA-6512 Foutmelding
Gerelateerde artikelenORA-00911
ORA-03113
ORA-00257
ORA-27154
ORA-29913
ORA-20001 in Verzamel schemastatistieken op 11g(FND_HISTOGRAM_COLS )