我为这个超级轻量级的问题道歉,但当我开始使用sqlcl作为sqlplus的潜在替代品时,我遗漏了一些东西。
sqlcl很吸引人,但我很困扰,因为我忽略了如何以交互方式运行匿名块。下面的示例在将其保存为Little-匿名-Block.sql并通过@Little-匿名-Block.sql在sqlcl中运行时运行良好,但原始pl/sql在下面的PLS-00103中失败。
小匿名-Block.sql:
BEGIN
DBMS_OUTPUT.PUT_LINE('This anonymous-block ran in sqlcl!');
END;
/作为脚本运行:
SQL>设置SERVEROUTPUT; SQL> @Little-匿名-Block.sql;这个匿名块运行在sqlcl中! 成功完成PL/SQL过程。
但是临时运行:
SQL>开始 2 DBMS_OUTPUT.PUT_LINE(‘这个匿名块运行在sqlcl!'); 3末端; [4]
给予:
从行开始的错误:1在命令中- 开始 DBMS_OUTPUT.PUT_LINE(‘这个匿名块运行在sqlcl!'); 结束;/ 请-00103:遇到符号"/“符号"/”被忽略。
sqlcl似乎是将"/“与块终止端连接在一起;在sqlplus中,相同的命令工作得很好。
您能告诉我,如何在sqlcl中交互地运行匿名块吗?我有20160513的早期采用者发行版。java 8.0_77。对于这个问题,很抱歉,如果在sqlcl手册中,我在oracle sqlcl-页上找不到什么可参考的。
发布于 2016-06-03 19:36:21
我发现您可以使用exec运行匿名块,但这有其局限性(例如,所有代码都在一行上)。

据我所知,你发现的是一只虫子。解决方法是用.结束块,然后使用/执行缓冲区,如下所示:

发布于 2016-08-08 18:24:54
这确实是个错误。它应该在OTN的最新版本中被修复。
BARRY@orcl☘ >BEGIN
2 DBMS_OUTPUT.PUT_LINE('This anonymous-block ran in sqlcl!');
3 END;
4 /
PL/SQL procedure successfully completed.
BARRY@orcl☘ >l
1 BEGIN
2 DBMS_OUTPUT.PUT_LINE('This anonymous-block ran in sqlcl!');
3* END;
BARRY@orcl☘ >https://stackoverflow.com/questions/37309233
复制相似问题