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

Oracle अपग्रेड के बाद ORA-06531

यह त्रुटि:

ORA-06531: Reference to uninitialized collection

इसका मतलब है कि आपके पास एक संग्रह है जिसे उपयोग करने से पहले प्रारंभ नहीं किया गया है, उदाहरण के लिए:

SQL> select banner from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production

SQL> ed
Wrote file afiedt.buf

  1  CREATE OR REPLACE TYPE t_employee AS OBJECT(
  2    id  number,
  3    name VARCHAR2(300),
  4    CONSTRUCTOR FUNCTION t_employee RETURN SELF AS RESULT
  5* )
SQL> /

Type created.

SQL> ed
Wrote file afiedt.buf

  1* CREATE OR REPLACE TYPE t_employees AS TABLE OF t_employee
SQL> /

Type created.

SQL> ed
Wrote file afiedt.buf

  1  DECLARE
  2    l_emp t_employee;
  3    l_emps t_employees;
  4  BEGIN
  5    for i in (SELECT employee_id, first_name
  6                FROM employees)
  7    loop
  8      l_emp := t_employee(i.employee_id, i.first_name);
  9      l_emps.extend();
 10      l_emps(l_emps.COUNT) := l_emp;
 11    end loop;
 12    DBMS_OUTPUT.put_line(l_emps(4).name);
 13* END;
SQL> /
DECLARE
*
ERROR at line 1:
ORA-06531: Reference to uninitialized collection
ORA-06512: at line 9

जैसा कि आप देख सकते हैं, मेरे पास ORA-06531 . है त्रुटि, ऐसा इसलिए है क्योंकि मैंने l_emps . को प्रारंभ नहीं किया है चर, मुझे जोड़ना होगा l_emps := t_employees(); :

SQL> ed
Wrote file afiedt.buf

  1  DECLARE
  2    l_emp t_employee;
  3    l_emps t_employees;
  4  BEGIN
  5    l_emps := t_employees();
  6    for i in (SELECT employee_id, first_name
  7                FROM employees)
  8    loop
  9      l_emp := t_employee(i.employee_id, i.first_name);
 10      l_emps.extend();
 11      l_emps(l_emps.COUNT) := l_emp;
 12    end loop;
 13    DBMS_OUTPUT.put_line(l_emps(4).name);
 14* END;
SQL> /
David

PL/SQL procedure successfully completed.

तो इन सभी PL/SQL प्रक्रियाओं के स्रोतों पर एक नज़र डालें, समस्या उनमें है।




  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 डायनेमिक SQL के लिए बाइंडिंग पैरामीटर्स

  2. Oracle - पंक्तियों को स्तंभों में स्थानांतरित करें

  3. तालिका में सभी कॉलम खोजने के लिए क्वेरी जिसमें कोई मूल्य नहीं है

  4. अजगर स्क्रिप्ट से कर्सर आउटपुट पैरामीटर के साथ ऑरैकल संग्रहीत कार्यविधि को कॉल करें

  5. विभिन्न समय क्षेत्रों के बीच दिनांक/समय रूपांतरण