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!

PL/SQL: ORA-00904 invalid identifier , PLS-00225: subprogram or cursor reference is out of scope

978485Feb 12 2014 — edited Feb 12 2014

Hi Gurus ,

Your help is greatly appreciated .

Am  i having a fucntion where we have the object included in  it .

The changes i have doen are : incuded  2 new cusrosrs  , but its failing with the below errors .

Highlighted ones are the changes i have made . its woriking fine prior to that your help is greatly appreciated.

1)PL/SQL: ORA-00904: "GET_ACQ_ID."."ACQ_ID ": invalid identifier

2) PLS-00225: subprogram or cursor 'GET_ACQ_ID' reference is   out of scope

Below  is the code :

_________________________________________________________________________

FUNCTION GET_IP_COMM_INFO return PROD.TERMINAL_IP_COMM_INFO_TAB IS

vTer              TER.ter_id%TYPE;
vAPPL_ID          TAC.appl_id%TYPE;
vvalue            TSF.vALUE%TYPE;

IP_COMM_INFO_LIST PROD.TERMINAL_IP_COMM_INFO_TAB := PROD.TERMINAL_IP_COMM_INFO_TAB();

CURSOR GET_ACQ_ID IS
       SELECT  ACQ_ID
       FROM TER T,MERC M, PROF P
       WHERE T.MER_ID = M.MER_ID
       AND M.PROFID = P.PROF_ID
       AND T.TER_ID=vTer_id ;


CURSOR GET_INFO_CURSOR IS
       SELECT   H.DESCRIPTION AS HOST_DESCRIPTION
       FROM  PROD.HOST H, PROD.APP_IP_COMM_ACCESS_INFO AICAI
       WHERE ( AICAI.HOST_ID = H.HOST_ID ) and
           ( AICAI.APPL_ID = vAPPL_ID ) ;

CURSOR GET_ACQ_CURSOR IS
      SELECT   H.DESCRIPTION AS HOST_DESCRIPTION
       FROM  PROD.HOST H, PROD.APP_IP_COMM_ACCESS_INFO AICAI,PROD.ACQUIRER_IP_COMM_ACCESS_INFO ACICAI
       WHERE ( AICAI.HOST_ID = H.HOST_ID ) and
             ( AICAI.APPL_ID = vAPPL_ID ) AND
            ( ACQUIRER_ID = GET_ACQ_ID.ACQ_ID ) ;    
BEGIN
   
    vTer_id := GLOBAL_VARIABLES.gv_ref_Ter_id;

        BEGIN
            SELECT  VALUE INTO vvalue  FROM  Tsf
                WHERE TER_id=vTEr_ID AND APPL_ID=vAPPL_ID and FEATURE_ID = 861;

           IF Vvalue ='04'  THEN
                 FOR  GET_ACQ_REC IN GET_ACQ_CURSOR
                 LOOP
                    IP_COMM_INFO_LIST.EXTEND;
                    IP_COMM_INFO_LIST(IP_COMM_INFO_LIST.COUNT) := PROD.TERMINAL_IP_COMM_INFO_OBJ(GET_ACQ_REC.HOST_DESCRIPTION);
                 END LOOP;
           ELSE
                FOR  GET_INFO_REC IN GET_INFO_CURSOR
                LOOP
                    IP_COMM_INFO_LIST.EXTEND;
                    IP_COMM_INFO_LIST(IP_COMM_INFO_LIST.COUNT) := PROD.TERMINAL_IP_COMM_INFO_OBJ(GET_INFO_REC.HOST_DESCRIPTION);
                END LOOP;
          END IF;

    RETURN IP_COMM_INFO_LIST;
EXCEPTION WHEN OTHERS THEN
     RAISE ;
END GET_IP_COMM_INFO;

----------------------------------------------------------

This post has been answered by Greg Spall on Feb 12 2014
Jump to Answer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Mar 12 2014
Added on Feb 12 2014
14 comments
7,046 views