Innehållsförteckning
Beskrivning i Oracle-databas
ORA-06512 i oracle är ett av de vanligaste felen i PLSQL-program i Oracle-databasen
Här är vad Oracle-dokumentationen säger om det här felet
Referens:Oracle-dokumentation
Du kan alltid hitta detta genom att skriva nedan i Unix
oerr ORA 06512
Förklaring av ORA-06512-felet:
Fel ORA-06512 betyder att bakåtspårningsmeddelandet när stacken lindas av av obehandlade undantag i din PLSQL-kod. Detta är ett sammanfattande fel för alla PLSQL-undantag och ses ofta.
ORA 6512 anger inte det faktiska felet, utan radnumret för det obehandlade felet i PLSQL-koden. ORA-6512 kommer vanligtvis att visas i en meddelandestack där föregående meddelande namnger orsaken till felet, till exempel i följande exempel:
ORA-06502: PL/SQL: numeric or value error ORA-06512: at line 1112
I ovanstående är det gulmarkerade felet huvudfelet
Orsaker till ORA-06512-fel:
Alternativen för att lösa detta Oracle-fel är:
1) Åtgärda villkoret som orsakar det obehandlade felet.
2) Skriv en undantagshanterare för detta obehandlade fel.
3) Kontakta din Oracle DBA för hjälp.
Exempel på ORA-06512:
Låt oss se några exempel på hur man arbetar med det
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
I exemplet ovan kompileras proceduren framgångsrikt men den gav fel under körningen
Så det faktiska felet är felet
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
Vi kan enkelt korrigera det genom att öka storleken på variabeln
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.
Vi kan också lösa detta med undantagshanteraren
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.
Ett annat exempel skulle vara
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
Här är ORA-01422 det verkliga felet. vi har mer än 1 rader i db_node-tabellen och får flera värden för node. Så en fix kan vara att begränsa en rad
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.
Ett annat exempel skulle vara
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
Här är ORA-01403 det verkliga felet. vi har inga rader i db_node oracle-tabellen och vi får inget felmeddelande om att hitta data. Så en korrigering kan vara att sätta undantagshantering
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.
Några fler exempel kan finnas på 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
Här är huvudfelet ORA-29283. Kontrollera lösningen genom att klicka på länken
Hoppas du gillar det här inlägget på ORA-6512 Felmeddelande
Relaterade artiklarORA-00911
ORA-03113
ORA-00257
ORA-27154
ORA-29913
ORA-20001 i Samla schemastatistik på 11g(FND_HISTOGRAM_COLS )