Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

ORA-06512 को लाइन नंबर पर कैसे हल करें?

विषय-सूची

Oracle डेटाबेस में विवरण

ORA-06512 ओरेकल में ओरेकल डेटाबेस में पीएलएसक्यूएल प्रोग्राम में देखी जाने वाली सामान्य त्रुटि में से एक है

यहाँ Oracle दस्तावेज़ीकरण इस त्रुटि के बारे में क्या कहता है

संदर्भ :Oracle प्रलेखन

आप इसे हमेशा नीचे यूनिक्स में टाइप करके पा सकते हैं

oerr ORA 06512

ORA-06512 त्रुटि का स्पष्टीकरण:

त्रुटि ORA-06512 इसका मतलब है कि आपके पीएलएसक्यूएल कोड में अनचाहे अपवादों द्वारा स्टैक के रूप में बैकट्रेस संदेश को खोल दिया जा रहा है। यह सभी PLSQL अपवादों के लिए एक कैच-ऑल एरर है और आमतौर पर देखा जाता है।

ORA 6512 वास्तविक त्रुटि को इंगित नहीं करता है, लेकिन PLSQL कोड में हैंडल न की गई त्रुटि की लाइन संख्या है। ORA-6512 आम तौर पर एक संदेश स्टैक में दिखाई देगा जिसमें पूर्ववर्ती संदेश त्रुटि का कारण बताता है, जैसे कि निम्न उदाहरण में:

ORA-06502: PL/SQL: numeric or value error
ORA-06512: at line 1112

उपरोक्त में, पीली हाइलाइट की गई त्रुटि मुख्य त्रुटि है

ORA-06512 गड़बड़ी के कारण:

इस Oracle त्रुटि को हल करने के विकल्प हैं:

1) उस स्थिति को ठीक करें जो हैंडल नहीं की गई त्रुटि का कारण बन रही है।
2) इस हैंडल न की गई त्रुटि के लिए एक अपवाद हैंडलर लिखें।
3) सहायता के लिए अपने Oracle DBA से संपर्क करें।

ओआरए-06512 के उदाहरण:

आइए इस पर काम करने के तरीके के बारे में कुछ उदाहरण देखें

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

ऊपर दिए गए उदाहरण में, प्रक्रिया सफलतापूर्वक संकलित हो जाती है लेकिन निष्पादन के दौरान यह त्रुटियां देती है

तो वास्तविक त्रुटि त्रुटि है

ORA-06502: PL/SQL: numeric or value error: character string buffer too small

हम वेरिएबल का आकार बढ़ाकर इसे आसानी से ठीक कर सकते हैं

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.

हम इसे अपवाद हैंडलर का उपयोग करके भी हल कर सकते हैं

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.

एक और उदाहरण होगा

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

यहाँ ORA-01422 वास्तविक त्रुटि है। हमारे पास db_node तालिका में 1 से अधिक पंक्तियाँ हैं और नोड के लिए कई मान प्राप्त करते हैं। तो एक फिक्स एक पंक्ति को प्रतिबंधित कर सकता है

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.

एक और उदाहरण होगा

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

यहाँ ORA-01403 वास्तविक त्रुटि है। हमारे पास db_node oracle तालिका में कोई पंक्ति नहीं है और हमें कोई डेटा नहीं मिला त्रुटि मिल रही है। तो एक फिक्स अपवाद हैंडलिंग डाल सकता है

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.

कुछ और उदाहरण 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

यहाँ मुख्य त्रुटि 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. Oracle UNION और ORDER BY के साथ जिज्ञासु मुद्दा

  2. PostgreSQL या Oracle में तिथि के अनुसार ऑर्डर कैसे करें

  3. Oracle और Microsoft स्कीमा में क्या अंतर है?

  4. Oracle PL/SQL - संग्रह (नेस्टेड टेबल्स)

  5. UPSERT गतिशील तालिका नाम के साथ तालिका में