PL/SQL Function Help

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Larry Lowe

    PL/SQL Function Help

    The following function worked in 8i(8.1.7.4) but will not compile in
    9i(9.2.0.3). This is a stripped down version with just the error
    parts. I am really new at PL/SQL can someone help me out.

    Thanks
    Larry

    CREATE OR REPLACE FUNCTION did_close_test( v2_msg_io IN OUT VARCHAR2,
    rt_pa_i IN s2_person_actio n%ROWTYPE )
    RETURN PLS_INTEGER

    IS
    B_TRUE BOOLEAN := TRUE;
    b_moa_ok BOOLEAN := FALSE;
    n_rc PLS_INTEGER := 0;

    CURSOR c_mon IS
    SELECT B_TRUE
    FROM s2_action_monit or
    WHERE moa_received_da te IS NOT NULL
    AND moa_signed_date IS NOT NULL
    AND person_action_k ey = rt_pa_i.process _person_action_ key;

    BEGIN

    OPEN c_mon;
    FETCH c_mon INTO b_moa_ok;
    CLOSE c_mon;

    RETURN n_rc;

    END did_close_test;
    /
  • LKBrwn_DBA

    #2
    Re: PL/SQL Function Help


    Exactly, like 'Nobody' says, loose the 'BOOLEAN's

    Also, you may not need a cursor:



    CREATE OR REPLACE FUNCTION did_close_test( v2_msg_io IN OUT VARCHAR2,

    rt_pa_i IN s2_person_actio n%ROWTYPE )

    RETURN PLS_INTEGER

    IS

    B_TRUE CHAR(1) := '1';

    b_moa_ok CHAR(1) := '0';

    n_rc PLS_INTEGER := 0;



    BEGIN



    SELECT B_TRUE

    INTO b_moa_ok

    FROM s2_action_monit or

    WHERE moa_received_da te IS NOT NULL

    AND moa_signed_date IS NOT NULL

    AND person_action_k ey = rt_pa_i.process _person_action_ key;



    b_moa_ok:=NVL(b _moa_ok,'0');



    RETURN n_rc;



    END did_close_test;

    /

    ;)


    --
    Posted via http://dbforums.com

    Comment

    Working...