在sql navigator中使用out ref_cursor执行存储过程

时间:2014-04-02 15:22:15

标签: sql oracle ref-cursor sql-navigator

我是Oracle和sql navigator的新手。我似乎无法找到执行存储过程并查看其结果的方法。 proc创建如下。如何在sql导航器中执行此proc。我正在使用sql navigator 6.7。另外,请注意,proc正在使用ref-cursor。

PROCEDURE getdata
( p_id            IN VARCHAR2,
 p_date            IN DATE,
 p_out   OUT ref_cursor)
IS

BEGIN
 OPEN p_out FOR
    SELECT *
    FROM   OPS_ARW.logs
    WHERE   member_id = p_id 
    AND     date>p_date;

END;   
PS:我很确定这是重复的。如果您只能将我重定向到正确的位置,我将无法找到它。

1 个答案:

答案 0 :(得分:0)

这个问题已经过了很长时间,但是由于我花了很多时间来构建这个代码,这里是针对类似问题运行的解决方案。注意:我的程序会返回 id codboard descrboard TABNUM 列。我正在使用Sql Navigator:

declare
l_list_boards sys_refcursor;
l_id          number;
l_codboard    VARCHAR2(50 BYTE);
l_descrboard  VARCHAR2(250 BYTE);
l_TABNUM      NUMBER;
begin

    PACK_NAME.GetBoardsList(list_boards=> l_list_boards);

    DBMS_OUTPUT.put_line ('Results: ');  

    loop
        fetch l_list_boards into l_id, l_codboard, l_descrboard, l_TABNUM;
        DBMS_OUTPUT.put_line(l_descrboard);
        EXIT WHEN l_list_boards%NOTFOUND;
    end loop;

    close l_list_boards;
end;