在下面的查询中,如何在PL / SQL“SQL窗口”中获取IOs CURSOR值
DECLARE
SOME_VAR_1 VARCHAR2(20);
SOME_VAR_2 VARCHAR2(20);
SOME_VAR_3 DECIMAL;
IO_CURSOR SYS_REFCURSOR;
BEGIN
SOME_VAR_1 := 'test1';
SOME_VAR_2 := 'test2';
SOME_VAR_3 := 1;
IO_CURSOR := NULL;
Get_Analysis_Data(p_in_symbol_type => SOME_VAR_1,
p_in_symbol => SOME_VAR_2,
p_in_isr_id => SOME_VAR_3,
isr_main_view => IO_CURSOR);
PRINT IO_CURSOR
END;
答案 0 :(得分:4)
如果用“SQL Window”表示SQL * PLUS,那么要打印(使用PRINT
命令)游标的内容,你需要在PL / SQL块之外声明一个绑定变量,赋值通过执行块然后使用PRINT
命令打印内容到PL / SQL块内的绑定变量:
SQL> variable IO_CURSOR refcursor;
SQL> DECLARE
2 SOME_VAR_1 VARCHAR2(20);
3 SOME_VAR_2 VARCHAR2(20);
4 SOME_VAR_3 DECIMAL;
5 --IO_CURSOR SYS_REFCURSOR;
6 BEGIN
7 SOME_VAR_1 := 'test1';
8 SOME_VAR_2 := 'test2';
9 SOME_VAR_3 := 1;
10 --IO_CURSOR := NULL; -- no need to do that
11 Get_Analysis_Data(p_in_symbol_type => SOME_VAR_1,
12 p_in_symbol => SOME_VAR_2,
13 p_in_isr_id => SOME_VAR_3,
14 isr_main_view => :IO_CURSOR);
15 END;
16 /
SQL> print io_cursor;
修改强>:
要在PL / SQL Developer中查看游标的内容,作为其中一个选项,您只需执行以下操作:
IO_CURSOR SYS_REFCURSOR;
变量声明。没有必要。同时将isr_main_view => IO_CURSOR
更改为isr_main_view => :IO_CURSOR
。在这种情况下,您需要使用绑定变量。variables window
底部的test window
指定您的引用光标的变量名称,您要查看的内容(IO_CURSOR
没有前面的分号)并选择类型{{ 1}}。cursor
的{{1}}列。按下带有省略号的按钮以查看引用游标value
的内容。 答案 1 :(得分:1)
如果 Get_Analysis_Data 是存储过程,您可以通过打开它并使用“运行”命令(工具栏中的绿色箭头)来执行它。 refcursor的内容打印在“Variables Output”窗口中,如表格。
可在此处找到简要教程:http://www.thatjeffsmith.com/archive/2011/12/sql-developer-tip-viewing-refcursor-output/
编辑:
抱歉,与IDE-Tools名称混淆了。此答案仅适用于您使用Oracle SQL-Developer ....如果您不使用它我建议您尽快切换:)