我是Oracle 11g的新手,希望查看存储过程的表输出的结果集。我创建了程序并执行了它。我只想以SQL Server中的网格形式查看输出。请帮帮我。
这是我的程序声明:
规格:
TYPE ret_cursor IS REF CURSOR;
procedure get_data(
p_start_dt in varchar2,
p_end_dt in varchar2,
p_results out ret_cursor,
p_err_no out number,
p_err_msg out varchar2
);
体:
PROCEDURE get_data(
p_start_dt IN VARCHAR2,
p_end_dt IN VARCHAR2,
p_results OUT ret_cursor,
p_err_no OUT NUMBER,
p_err_msg OUT VARCHAR2
)
答案 0 :(得分:0)
如果您只想查看结果,可以使用SQL * Plus,它是REFCURSOR绑定变量和PRINT命令:
SQL> create or replace procedure p
2 (
3 x out sys_refcursor
4 )
5 is
6 begin
7 open x for select 1 a, 'a' b from dual;
8 end;
9 /
Procedure created.
SQL> var rc refcursor
SQL> exec p(:rc)
PL/SQL procedure completed.
SQL> print rc
A B
---------- -
1 a
答案 1 :(得分:0)
如果你正在使用TOAD,那么很容易看到refcursor的输出。
首先复制Toad编辑器中的代码
DECLARE
v_err_no number;
v_err_msg VARCHAR2(200);
BEGIN
get_data(
p_start_dt => SYSDATE, --depend on you
p_end_dt => SYSDATE+10, --depend on you
p_results => :ret_cursor,
p_err_no => v_err_no,
p_err_msg => v_err_msg
);
--print error message
END;
现在转到编辑器 - >执行语句f9,然后单击
出现弹出窗口,并询问你的ret_cursor类型,选择type作为光标,按照屏幕截图所示进行操作