Hi

We are using Oracle 8.1.6 on Win 2000. I have created a package with Record Type and One more procedure with OUT Parameter. Now Procedure ProTest takes IN parameter CODE and stores in Package and passes to second procedure ProTestOut which returns OUT value in RECORD TYPE.

Please Guide me to get return value of Dynamically executed statement into Record. Since I need to process it. I tried few options but not getting proper result. So Please help

But When I tried to "Execute ProTest(CODE);
I received following error...

ERROR at line 1:
ORA-00600: internal error code, arguments: [7005], [118], [], [], [], [], [], []
ORA-06512: at "SYSADM.PROTESTOUT", line 6
ORA-06512: at "SYSADM.PROTEST", line 25
ORA-06512: at line 1
---------------------------------------------------
Please Refer code below....

create or replace package PkgTrial as
Type Pkg_Test IS RECORD (vTest Tbltest%Rowtype);
vFeld1 VARCHAR2(4000);
sPkgcode TblTest.Code%TYPE;
End PkgTrial;
/


Create or replace PROCEDURE ProTestOut(vTestOutStmt OUT PkgTrial.Pkg_Test)as
vStmt VARCHAR2(4000);
Begin
vStmt := 'SELECT '||PkgTrial.vFeld1||' FROM Tbltest WHERE CODE = '''||PkgTrial.sPkgcode||'''' ;
Execute Immediate vStmt into vTestOutStmt;

END;
/



CREATE OR REPLACE PROCEDURE ProTest(sCode VARCHAR2) AS
vFeld VARCHAR2(30);
vFeld2 VARCHAR2(4000);

Cursor CurFeld IS SELECT FeldName
FROM TblFieldName
WHERE TbName = 'TBLTEST';

MyRec PkgTrial.Pkg_Test;

BEGIN
OPEN CurFeld;
LOOP
FETCH CurFeld INTO vFeld;
EXIT WHEN CurFeld%NOTFOUND;
IF CurFeld%ROWCOUNT=1 THEN
PkgTrial.vFeld1:=PkgTrial.vFeld1||' '||vFeld;
ELSE
PkgTrial.vFeld1:=PkgTrial.vFeld1||','||vFeld;
END IF;
END LOOP;
CLOSE CurFeld;

PkgTrial.sPkgcode:=sCode;
ProTestOut(MyRec);

End;
/

Thanks & Regards,
Shailesh