Oracle sqlplus空行处理方法

Oracle IT敢客 2年前 (2017-08-05) 10102次浏览 已收录 0个评论 扫描二维码

  默认情况下,在 sqlplus 中运行的脚本,如包含空行,sqlplus 会不认的,对 sqlplus 空行的出现,最常见的有两种形式,一种是 sql 语句中有空行,另一种是 sql 后有空行,如下:

  sqlplus 运行的 sql 语句中有空行

  view plaincopy to clipboardprint?
  --a1.sql
  select sysdate
  from
  dual;

  sqlplus 运行 sql 语句中无空行,但 sql 语句与分号(结束符)有空行

  view plaincopy to clipboardprint?
  --b1.sql
  select sysdate
  from dual
  ;

  默认情况下,sqlplus 遇空行的处理结果:

  dw@dw>@a1.sql
  SP2-0042: 未知命令 "from" - 其余行忽略。
  SP2-0042: 未知命令 "dual" - 其余行忽略。
  dw@dw>@b1.sql
  1 select sysdate
  2* from dual
  dw@dw>

  对于上述两种空行,sqlplus 处理方式差不多,第一种只能在 sql 语句前加上 set sqlblanklines on,sqlplus 就会正确处理空行;

  对于第二种情况,可以加 set sqlblanklines on,也可以将分号改为 /,sqlplus 就会正确处理空行。

  在脚本中加上 set sqlblankline on 前后,sqlplus 遇空行的处理结果:

  view plaincopy to clipboardprint?
  --a1.sql
  set sqlblankline off
  select sysdate
  from
  dual
  /
  set sqlblankline on
  select sysdate
  from
  dual;
  dw@dw>@a1.sql
  dw@dw>set sqlblankline off
  dw@dw>select sysdate
  2
  dw@dw>from
  SP2-0042: 未知命令 “from” – 其余行忽略。
  dw@dw>
  dw@dw>dual
  SP2-0042: 未知命令 “dual” – 其余行忽略。
  dw@dw>/
  select sysdate
  *
  第 1 行出现错误:
  ORA-00923: 未找到要求的 FROM 关键字
  dw@dw>set sqlblankline on
  dw@dw>select sysdate
  2
  3 from
  4
  5 dual;
  SYSDATE
  ——————-
  2011-06-27 23:42:32
  已选择 1 行。
  view plaincopy to clipboardprint?
  --b1.sql
  set sqlblankline off
  select sysdate
  from dual
  /
  set sqlblankline on
  select sysdate
  from dual
  ;

  如果在 sql 结尾出现空行,可以用/代替分号,也可以完成对 sqlplus 空行的处理。

  dw@dw>--b1.sql dw@dw>set sqlblankline off
  dw@dw>
  dw@dw>select sysdate 2 from dual 3
  dw@dw>/
  SYSDATE
  -------------------
  2011-06-27 23:42:58
  已选择 1 行。
  dw@dw>
  dw@dw>set sqlblankline on
  dw@dw>select sysdate 2 from dual 3 4 5 ;
  SYSDATE
  -------------------
  2011-06-27 23:42:58
  已选择 1 行。
  dw@dw>


IT 敢客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Oracle sqlplus 空行处理方法
喜欢 (156)
[313176056@qq.com]
分享 (0)
IT敢客
关于作者:
“我所做的一切都是为了方便我的生活~~~“
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址