2010-08-24 80 views
8

作为"Get resultset from oracle stored procedure"问题的后续措施,有没有一种方法可以显示SQL Developer中的网格(而不是纯文本“脚本输出”窗口)中返回REFCURSOR的存储过程的结果?Oracle SQL Developer:在网格中显示REFCURSOR结果?

编辑:答案帮助,但我仍然有显示结果中的“查看值”窗口中设置了一个问题:

alt text

列只能扩展少量,可能是由于返回结果的数量。与大小调整控制扩大窗口没有帮助:

alt text

回答

8

我不认为你可以用程序。

编辑:感谢DCookie为简化我原来的答案。

但是,作为解决方法,您可以编写一个调用该过程的函数,然后使用SQL调用该函数。

例如

create or replace function callmyproc 
return sys_refcursor 
IS 
    rc sys_refcursor; 
BEGIN 

    myproc(rc); 

    return rc; 

END; 

然后你就可以调用具有:

select callmyproc() 
    from dual; 

在这个例子中运行时,SQL开发数据网格显示一个结果,但如果你向右滚动,然后点击编辑按钮,你会看到结果在网格中。

+1

或者更简单一点,创建一个调用该过程并返回refcursor的函数。 – DCookie 2010-08-24 22:35:46

+0

@DCookie - 当然!一个更优雅的方式。谢谢,我修改了我的答案。 – 2010-08-25 07:05:49

+0

感谢您的帮助。我已经接受了答案,但是为了获得结果,我将返回“View Value”窗口,其中显示了点击编辑按钮时无法展开的小列。 – technomalogical 2010-08-25 13:01:10