【问题标题】:Executing stored procedure in PL/SQL Developer SQL Window在 PL/SQL Developer SQL 窗口中执行存储过程
【发布时间】:2023-03-04 22:58:01
【问题描述】:

我使用 TOAD 有一段时间了,但我的部门要求我评估 PL/SQL Developer 作为可能的更改。

我正在尝试在 PL/SQL 开发人员中运行以下命令。它给出了一条错误消息:ORA-00900: Invalid SQL Statement

VARIABLE mycur    refcursor;
VARIABLE errorseq NUMBER;
VARIABLE errormsg CHAR;
EXEC rums.rums_sp_tv_project_breakdown2(94090,:mycur);
print mycur;

在 TOAD 中,我可以将它放在 SQL 编辑器中,然后按 F5 到“作为脚本执行”,输出看起来就好了。

关于如何做到这一点的任何想法?我看到 PL/SQL Developer 有一个命令窗口,但我不是 SQLPlus 大师(也许是我的问题),也无法让它在命令窗口中运行。

【问题讨论】:

  • 对不起,上面的代码有两个变量在这种情况下没有使用,但它不会影响任何东西......但我确实注意到我把它留在了那里(我正在查询另一个在此之前的程序)

标签: oracle exec procedure plsqldeveloper ora-00900


【解决方案1】:

PL/SQL Developer 命令窗口不支持refcursor,它显示消息REFCURSOR not supported

但测试窗口确实支持游标。首先,在单独的窗口中创建一个示例程序:

create or replace procedure test_procedure(p_cursor in out sys_refcursor) is
begin
    open p_cursor for select 'column 1' col1, 'column 2' col2 from dual;
end;
/

打开一个测试窗口。添加一个 Cursor 类型的变量。添加一个匿名 PL/SQL 块,该块使用该变量作为示例过程的参数。运行 PL/SQL 块,它将填充游标。 .

现在展开 <Cursor> 值,结果将出现在单独的窗口中:

【讨论】:

  • 能否用上面的代码举个例子?我正在尝试(和谷歌搜索)但没有得到它
  • 当然,请参阅新答案。顺便说一句,你面前的工作非常艰巨。尽管与 TOAD 相比,我更喜欢 PL/SQL Developer,但这两种工具都有各自的特点和学习曲线。真正比较两者需要几周或几个月的时间才能变得足够舒适。您确实需要直接与有经验的用户合作,以​​了解使其如此有用的所有技巧和提示。例如,您是否了解 Tools-->Preferences-->SQL Window-->AutoSelect 语句?直到我发现我绝对讨厌这个程序。祝你好运!
  • 谢谢。我很难按照您上面的解释进行操作,但最终还是如您所说:我只是无法弄清楚如何在新工具中进行操作(具体来说,我无法弄清楚如何扩展光标...然后我在最右上角看到那个小省略号...)感谢您的帮助! (是的 - 也很有趣 - “自动选择”是我迫切需要发现的第一件事......并且确实......从 Toad 方便的 Shft-F9 到必须突出显示我的 SQL 只是不会削减它)
猜你喜欢
  • 2011-05-07
  • 1970-01-01
  • 2011-11-11
  • 2011-07-09
  • 1970-01-01
  • 2020-04-13
  • 2011-04-28
  • 1970-01-01
  • 2021-11-29
相关资源
最近更新 更多