使用函数返回多行

时间:2016-05-17 15:18:45

标签: sql oracle function cursor

在调用下面的函数时,我只得到游标返回的所有行的最后一行。在这个陈述中使用游标很重要。

CREATE OR REPLACE FUNCTION fnc_get_contractor_id(cst_username IN VARCHAR2 )
    RETURN NUMBER
    AS

    CURSOR cursor_contract_name IS
    SELECT plc.FK2_CONTRACTOR_ID
        FROM lds_consultant cons
        INNER JOIN lds_account acc on cons.consultant_id = acc.fk1_consultant_id 
        INNER JOIN lds_placement plc on acc.account_id = plc.FK1_ACCOUNT_ID
        WHERE UPPER(cons.USERNAME) = UPPER(cst_username)
        AND UPPER(plc.PLT_TO_PERMANENT) = UPPER('Y');

    V_contracotr_id number(10);

    BEGIN

    for rec in cursor_contract_name loop

      V_contracotr_id := rec.fk2_contractor_id;

      dbms_output.put_line('cst_username : '||cst_username||'  V_contracotr_id :'||V_contracotr_id);

            --return V_contracotr_id;

            END LOOP;

                    return V_contracotr_id;
    END;
    /

我怎么能返回所有行,以便我可以使用返回的行创建一个表?

0 个答案:

没有答案