Hi,
a possible workaround follows.
Avoid declaration of record-type in the package, declare record variables directly.
In addition, you shoul use bind variables for NDS, at least it's more readable.
Code:
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 Tbltest%Rowtype)as 
vStmt VARCHAR2(4000); 
Begin 
  -- use BIND VARIABLE here
  vStmt := 'SELECT '||PkgTrial.vFeld1||' FROM Tbltest WHERE CODE = :code';
  Execute Immediate vStmt into vTestOutStmt USING PkgTrial.sPkgcode;
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 Tbltest%Rowtype;

BEGIN 
  PkgTrial.vFeld1:='';
  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; 
/
Ales