ORA-06531: Reference to uninitialized collection [message #578556] |
Fri, 01 March 2013 03:54 |
|
HI,
I am getting the error ORA-06531: Reference to uninitialized collection while calling a table function which is of collection type.
CREATE OR REPLACE FUNCTION FN_GET_LINK_SYS_ID
RETURN PGIPK_DM_PROCESS.DM_SYSID
PIPELINED IS
T_SYS_ID PGIPK_DM_PROCESS.DM_SYSID;
BEGIN
T_SYS_ID := PGIPK_DM_PROCESS.DM_SYSID();
FOR I IN 1 .. PGIPK_DM_PROCESS.DM_SYS_ID.COUNT LOOP
T_SYS_ID.EXTEND(I);
T_SYS_ID(I) := PGIPK_DM_PROCESS.DM_SYS_ID(I);
PIPE ROW(T_SYS_ID(I));
END LOOP;
RETURN;
END;
Definition of Type is below
--NESTED TABLE TO STORE SYS_ID S OF TABLE
TYPE TAB_SYS_ID IS RECORD(
POL_NO VARCHAR2(60),
POL_END_NO_IDX NUMBER,
PSEC_SEC_CODE VARCHAR2(30),
PRAI_RISK_ID VARCHAR2(10),
PRC_CODE VARCHAR2(60),
SMI_CODE VARCHAR2(60),
PSEC_SYS_ID NUMBER,
POL_SYS_ID NUMBER,
PRAI_SYS_ID NUMBER,
PRC_SYS_ID NUMBER,
SMI_SYS_ID NUMBER);
TYPE DM_SYSID IS TABLE OF TAB_SYS_ID;
DM_SYS_ID DM_SYSID;
when i m writing select * from table(FN_GET_LINK_SYS_ID) , its throwing ORA-06531: Reference to uninitialized collection
[EDITED by LF: fixed [code] tags]
[Updated on: Fri, 01 March 2013 04:17] by Moderator Report message to a moderator
|
|
|
|
Re: ORA-06531: Reference to uninitialized collection [message #578559 is a reply to message #578557] |
Fri, 01 March 2013 04:02 |
|
I missed out one piece of code
----------
------------
IDX := IDX + 1;
DM_SYS_ID.EXTEND(1);
DM_SYS_ID(IDX).POL_NO := M_POL_NO;
DM_SYS_ID(IDX).POL_END_NO_IDX := M_END_NO_IDX;
DM_SYS_ID(IDX).PSEC_SEC_CODE := M_SEC_CODE;
DM_SYS_ID(IDX).PRAI_RISK_ID := M_RISK_ID;
DM_SYS_ID(IDX).PRC_CODE := M_CVR_CODE;
DM_SYS_ID(IDX).SMI_CODE := M_SMI_CODE;
DM_SYS_ID(IDX).PSEC_SYS_ID := NULL;
DM_SYS_ID(IDX).POL_SYS_ID := NULL;
DM_SYS_ID(IDX).PRAI_SYS_ID := NULL;
DM_SYS_ID(IDX).PRC_SYS_ID := NULL;
DM_SYS_ID(IDX).SMI_SYS_ID := NULL;
------------
THEN HERE CALLING SELECT * FROM TABLE(FN_GET_LINK_SYS_ID)
----------
|
|
|
|
|
|
|