Pra*_*van 10 oracle plsql ref-cursor oracle10g oracle-sqldeveloper
可能重复:
从oracle包过程中获取结果的最佳方法/工具
Oracle SQL Developer:在Grid中显示REFCURSOR结果?
我是Oracle SQL Developer的新手.我正在使用Oracle SQL Developer版本3.0.我试图使用以下查询来测试我的SP.
DECLARE
type output_cursor is ref cursor;
P_CURSOR output_cursor;
BEGIN
P_CURSOR := NULL;
myPackage.mySPTest ( P_NOTIFICATION_ID => 1975357,P_CURSOR => P_CURSOR) ;
END;
Run Code Online (Sandbox Code Playgroud)
当我在我的Oracle SQL Developer中运行上述查询时,我收到一条消息'anonymus block completed'并且没有显示任何结果.
任何人都可以帮助我,如何看到结果.
.
Ale*_*ole 22
您可以使用SQL Developer中声明的绑定变量来保存并显示结果:
var r refcursor;
exec myPackage.mySPTest(P_NOTIFICATION_ID => 1975357, P_CURSOR => :r);
print r;
Run Code Online (Sandbox Code Playgroud)
exec 是匿名块的简写,所以这相当于:
var r refcursor;
begin
myPackage.mySPTest(P_NOTIFICATION_ID => 1975357, P_CURSOR => :r);
end;
/
print r;
Run Code Online (Sandbox Code Playgroud)
除非P_CURSOR被宣布为无益的东西,否则......
Emm*_*l N -3
要查看光标结果,您需要循环光标并打印值。您需要知道光标返回的内容的列名称。你可以这样做:
DECLARE
type output_cursor is ref cursor;
P_CURSOR output_cursor;
BEGIN
P_CURSOR := NULL;
DOCTORS_APP.get_reminders ( P_NOTIFICATION_ID => 1975357,P_CURSOR => P_CURSOR) ;
//replace Column1 and Column2 with actual column names
FOR CUR_VAL in P_CURSOR LOOP
DBMS_OUTPUT.PUT_LINE(CUR_VAL.Column1||' '||CUR_VAL.Column2);
END LOOP;
END;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
77663 次 |
| 最近记录: |