【问题标题】:Oracle SQL Developer: Show REFCURSOR Results in Grid?Oracle SQL Developer:在网格中显示 REFCURSOR 结果?
【发布时间】:2011-04-03 03:35:21
【问题描述】:

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

编辑:答案有所帮助,但我仍然无法在“查看值”窗口中显示结果集:

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

【问题讨论】:

    标签: oracle stored-procedures oracle-sqldeveloper


    【解决方案1】:

    我不认为你可以通过程序。

    编辑:感谢 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 Developer 数据网格会显示一个结果,但如果您向右滚动并单击编辑按钮,您将在网格中看到结果。

    【讨论】:

    • 或者更简单,创建一个调用过程并返回引用的函数。
    • @DCookie - 当然!一种更优雅的方式。谢谢,我已经修改了答案。
    • 感谢您的帮助。我已经接受了答案,但是对于我得到的结果,“查看值”窗口显示了在单击编辑按钮时无法展开的小列。
    • @technomalogical:我明白你的意思,这个例子很好,但是有很多列的输出会导致问题。似乎随着窗口大小的调整,数据网格大小不会改变。抱歉,我不知道如何解决这个问题!
    猜你喜欢
    • 2012-01-26
    • 2011-04-06
    • 2021-03-22
    • 1970-01-01
    • 2020-01-23
    • 1970-01-01
    • 2017-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多