Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

ORA-06530 : REFERENCE TO UNINITIALIZED COMPOSITE

Gowthaman Ganesan-OracleFeb 11 2014 — edited Feb 11 2014

CREATE OR REPLACE TYPE "R" AS OBJECT

(COL1 NUMBER,

COL2 DATE,

COL3 VARCHAR2(30),

COL4 NUMBER,

COL5 VARCHAR2(240))

/

CREATE OR REPLACE TYPE "T" AS TABLE OF R

/

CREATE OR REPLACE FUNCTION FUN1(fv_id NUMBER) RETURN T

IS

  CURSOR c1 (cv_id NUMBER) IS

  SELECT COL1,

  COL2,

  COL3,

  COL4.

  COL5

    FROM TABLE1 WHERE id = cv_id;

    tbl T;

    lv_count NUMBER := 0;

BEGIN  

     

      tbl := T();

      FOR i IN c1(fv_id)

      LOOP

          lv_count := c1%ROWCOUNT;

          tbl.EXTEND;                      

          dbms_output.put_line('lv_count :: '||lv_count);

         

          tbl(lv_count).COL1       := I.COL1;

          tbl(lv_count).COL2       := I.COL2;

          tbl(lv_count).COL3       := I.COL3;

          tbl(lv_count).COL4       := I.COL4;

          tbl(lv_count).COL5       := I.COL5

         

      END LOOP;

  RETURN T;

END FUN1

/

function is created successfully

then i run the below statement

SELECT  * FROM TABLE (FUN1(100));

"ORA-06530 : REFERENCE TO UNINITIALIZED COMPOSITE" Error is getting display..

i have already initialized as tbl := t();

what else it requires...kindly help

Thanks in advance.

Regards

GG

This post has been answered by Gowthaman Ganesan-Oracle on Feb 11 2014
Jump to Answer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Mar 11 2014
Added on Feb 11 2014
3 comments
3,090 views