匿名块不在 SQL Developer 上运行,但在 Toad 上运行
Posted
技术标签:
【中文标题】匿名块不在 SQL Developer 上运行,但在 Toad 上运行【英文标题】:Anonymous block not working on SQL Developer but running on Toad 【发布时间】:2021-03-26 07:28:17 【问题描述】:我有一个运行 Toad 但不运行 SQL Developer 的脚本。我尝试绑定变量但不工作。
DECLARE
retval sys_refcursor;
BEGIN
retval :=
SCHEMA_NAME.student_pkg.get_info_fn
(pi_no,
);
DBMS_OUTPUT.put_line ('PO_NO: ' || pi_no);
:A := retval;
END;
/
我尝试了 &:A 和 &&:A 但它不起作用。我的错误是:
Bind Variable "A" is NOT DECLARED
anonymous block completed
你有什么想法吗?
【问题讨论】:
【参考方案1】:我试过 &:A 和 &&:A
您正在混合绑定变量 (:
) 和替换变量 (&
)。
如果你想作为脚本运行(F5)那么你需要在客户端声明绑定变量:
variable a refcursor
DECLARE
retval sys_refcursor;
BEGIN
retval :=
SCHEMA_NAME.student_pkg.get_info_fn
(pi_no,
);
DBMS_OUTPUT.put_line ('PO_NO: ' || pi_no);
:A := retval;
END;
/
print a
(你不需要retval
;你可以直接使用:a := ...get_info_fn(...);
。)
print
是显示结果的客户端命令。
如果您将块作为语句运行 (F5),那么您将看到一个对话框来分配语句中使用的绑定值;但这对于传入值比将值传出更有帮助。
【讨论】:
以上是关于匿名块不在 SQL Developer 上运行,但在 Toad 上运行的主要内容,如果未能解决你的问题,请参考以下文章
Regexp_like 在调试器网站上工作,但不在 Oracle SQL Developer 上工作