Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle sqlcl与sqlplus pl/sql的兼容性_Oracle_Sqlplus_Sqlcl - Fatal编程技术网

Oracle sqlcl与sqlplus pl/sql的兼容性

Oracle sqlcl与sqlplus pl/sql的兼容性,oracle,sqlplus,sqlcl,Oracle,Sqlplus,Sqlcl,对于这个超轻量的问题,我很抱歉,但是当我开始使用sqlcl作为sqlplus的潜在替代品时,我遗漏了一些东西 sqlcl很有吸引力,但我很困扰,因为我不知道如何以交互方式运行匿名块。当保存为Little-Anonymous-Block.sql并通过@Little-Anonymous-Block.sql在sqlcl中运行时,下面的示例可以正常工作,但原始pl/sql在以下PLS-00103中失败 Little-Anonymous-Block.sql: BEGIN DBMS_OUTPUT.PUT

对于这个超轻量的问题,我很抱歉,但是当我开始使用sqlcl作为sqlplus的潜在替代品时,我遗漏了一些东西

sqlcl很有吸引力,但我很困扰,因为我不知道如何以交互方式运行匿名块。当保存为Little-Anonymous-Block.sql并通过@Little-Anonymous-Block.sql在sqlcl中运行时,下面的示例可以正常工作,但原始pl/sql在以下PLS-00103中失败

Little-Anonymous-Block.sql:

BEGIN
  DBMS_OUTPUT.PUT_LINE('This anonymous-block ran in sqlcl!');
END;
/
作为脚本运行:

SQL>打开服务器输出

SQL>@Little-Anonymous-Block.SQL

这个匿名块在sqlcl中运行

PL/SQL过程已成功完成

但是,临时运行:

SQL>开始

2 DBMS_OUTPUT.PUT_LINE('这个匿名块在sqlcl中运行!')

3结束

四,/

给出:

从命令中的第1行开始时出错-

开始

DBMS_OUTPUT.PUT_LINE('这个匿名块在sqlcl中运行!')

结束/

PLS-00103:遇到符号“/”符号“/”被忽略

sqlcl似乎将“/”与块终止端连接在一起; 同样的命令在sqlplus中也可以正常工作


你能告诉我,我如何在sqlcl中以交互方式运行匿名块吗?我从20160513获得了早期采用者版本。java 8.0_77。抱歉,如果在sqlcl手册中有此问题,我在oracle上没有找到太多可参考的内容。

我发现您可以使用
exec
运行匿名块,但这有其局限性(例如,所有代码都在一行上)。

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


我发现可以使用
exec
运行匿名块,但这有其局限性(例如,所有代码都在一行上)。

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


这确实是一个bug。它应该在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☘ >

这确实是一个错误。它应该在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☘ >

当然,如果删除
/
,它将在sqlcl中执行annonymous块。此外,如果输入
show all
,您应该会看到
SQL*Plus模式处于关闭状态
。我怀疑如果你打开它,你应该会得到你习惯的行为。谢谢@PatrickBacon关于SQL*Plus模式的介绍。我会带着它跑的。但是,删除终止符不会得到要执行的非块。sqlcl不会检测到块结束(行为非常类似于SQL*Plus)。有什么想法吗?有好的sqlcl文档吗?“HELP/”没有太多内容。当然,如果删除
/
,它将在sqlcl中执行注释性块。此外,如果输入
show all
,您应该会看到
SQL*Plus模式处于关闭状态
。我怀疑如果你打开它,你应该会得到你习惯的行为。谢谢@PatrickBacon关于SQL*Plus模式的介绍。我会带着它跑的。但是,删除终止符不会得到要执行的非块。sqlcl不会检测到块结束(行为非常类似于SQL*Plus)。有什么想法吗?有好的sqlcl文档吗?“HELP/”没有太多内容。好吧,错误发生了。我会调查它是否已经提交给甲骨文。同时,这种变通方法是可以接受的。谢谢你看。我会接受的。很高兴我能帮忙。好吧,虫子会发生的。我会调查它是否已经提交给甲骨文。同时,这种变通方法是可以接受的。谢谢你看。我会接受的。很高兴我能帮忙。