如果我有一个返回查询引用游标的函数,我如何在 SQL Developer 中查看它的结果集?Toad 有一个用于查看参考光标结果的特殊选项卡,这是我想要找到的功能。
问问题
34613 次
4 回答
8
SET SERVEROUTPUT ON;
VARIABLE X REFCURSOR;
EXEC PROCEDURE_WITH_OUTPUT_SYS_REFCURSOR(:X);
PRINT X;
于 2012-01-12T21:43:27.410 回答
7
双击结果记录中的光标字段。右侧有一个“...”图标。点击这个,你会看到内容
于 2009-07-03T13:25:55.273 回答
7
嗨,我知道这是不久前被问到的,但我刚刚弄清楚了,它可能对其他人有所帮助。不确定这是否正是您要查找的内容,但这就是我调用存储过程并在 SQL Developer 中查看输出的方式。
在 SQL Developer 中查看 proc 时,右键单击并选择“运行”或选择 Ctrl+F11 以打开运行 PL/SQL 窗口。这将创建一个包含您需要修改的输入和输出参数的模板。要返回 sys_refcursor 的结果,您需要声明一个与 proc 返回的 select stmt / sys_refcursor完全相同的行类型。下面我声明与我的输出字段匹配的“type t_row”,然后遍历返回的 sys_refcursor。
DECLARE
P_CAE_SEC_ID_N NUMBER;
P_FM_SEC_CODE_C VARCHAR2(200);
P_PAGE_INDEX NUMBER;
P_PAGE_SIZE NUMBER;
v_Return sys_refcursor;
type t_row is record (CAE_SEC_ID NUMBER,FM_SEC_CODE VARCHAR2(7),rownum number, v_total_count number);
v_rec t_row;
BEGIN
P_CAE_SEC_ID_N := NULL;
P_FM_SEC_CODE_C := NULL;
P_PAGE_INDEX := 0;
P_PAGE_SIZE := 25;
CAE_FOF_SECURITY_PKG.GET_LIST_FOF_SECURITY(
P_CAE_SEC_ID_N => P_CAE_SEC_ID_N,
P_FM_SEC_CODE_C => P_FM_SEC_CODE_C,
P_PAGE_INDEX => P_PAGE_INDEX,
P_PAGE_SIZE => P_PAGE_SIZE,
P_FOF_SEC_REFCUR => v_Return
);
-- Modify the code to output the variable
-- DBMS_OUTPUT.PUT_LINE('P_FOF_SEC_REFCUR = ');
loop
fetch v_Return into v_rec;
exit when v_Return%notfound;
DBMS_OUTPUT.PUT_LINE('sec_id = ' || v_rec.CAE_SEC_ID || 'sec code = ' ||v_rec.FM_SEC_CODE);
end loop;
END;
于 2011-01-14T10:19:18.253 回答
1
没有办法在 sqldeveloper 的 datagrid 中显示 refcursor。我们可以定义一个 refcursor,调用 SP,然后打印 refcursor,然后数据将以平面文本模式打印在 Script output 窗口中,但不会在 Query Result 窗口中打印。
于 2011-10-06T18:39:07.147 回答