首页 文章

TORA使用OUT REF CURSOR执行包程序

提问于
浏览
2

我'm trying to execute a Package Procedure that has a couple in parameters and a REF CURSOR out parameter but can'似乎想出了TORA(我的SQL IDE)

这是一个我想要执行的过程的设计示例,并查看光标:

PROCEDURE get_peeps_in_city ( pi_city IN varchar(100), po_recordset OUT REF CURSOR )
    IS
    BEGIN
         OPEN po_recordset
         FOR Select Id, 
                FName, 
                LName
             FROM People
             WHERE City like '%' || pi_city || '%'
    END;

这是我到目前为止所尝试的:

DECLARE
    v_cursor REF CURSOR;
BEGIN
    execute PKG_PEEPS.get_peeps_in_city('Chicago', v_cursor);
END

我得到的错误是:

PLS-00103:遇到以下其中一项时遇到符号“END”:begin function package pragma procedure subtype type use form current cursor

1 回答

  • 3

    你可能正在寻找这样的东西:

    DECLARE
        v_cursor SYS_REFCURSOR;
        v_Id NUMBER;
        v_FName VARCHAR2(200);
        v_LName VARCHAR2(200);
    BEGIN
        PKG_PEEPS.get_peeps_in_city('Chicago', v_cursor);
    
        LOOP
          FETCH v_cursor INTO v_Id, v_FName, v_LName;
          EXIT WHEN v_cursor%NOTFOUND;
            -- do something with v_Id, v_FName, v_LName
        END LOOP;
        CLOSE v_cursor;
    END;
    /
    

    Update:

    您可能希望查询结果显示在IDE中,就像您直接运行SELECT语句一样 . 上面的代码不会发生这种情况,我不知道任何可以实现的代码(除非你安装了一个特定的表函数) .

    您可以做的最好的事情是在循环中输出检索到的数据(使用 DBMS_OUTPUT.PUT_LINE ) .

相关问题