ITPub博客

首页 > Linux操作系统 > Linux操作系统 > sqlplus与空行.txt

sqlplus与空行.txt

原创 Linux操作系统 作者:lfree 时间:2011-12-08 15:18:42 0 删除 编辑
sqlplus与空行.txt

开发人员交给一些sql脚本,要在服务器上运行,我检查一下,没有什么问题,在测试机器运行:

1* create table t(number(10)
SP2-0734: unknown command beginning "b varchar2..." - rest of line ignored.
SP2-0042: unknown command ")" - rest of line ignored.

        打开脚本检查发现没有什么错误,唯一的不同是有一行空行在create后面,具体例子如下:

$cat a.sql

create table t(

        a number(3),
        b varchar2(10)
);

        对比上面错误发现,缺少a,开始怀疑脚本存在怪字符,在vi下打入:set list,并没有发现任何异常。删除空行,粘贴出来执行,一切正常!开始手工打入命令执行:

SQL> create table t (
2
SQL> a
SP2-0004: Nothing to append.

        可以发现在第2行回车后,跳到了SQL>提示符,退出了执行.换一句话,sql脚本在语句中不能包含空行,这个还第一次遇到!又测试一个存贮过程,发现问题有不存在。

SQL> create procedure testproc
  2
  3  as
  4  begin
  5  null;
  6  end;
  7  /

$ sqlplus scott/test | tee set.txt
SQL> show all
SQL> quit
$ grep -i blank set.txt
sqlblanklines OFF

        感觉就是这个参数控制空行行为。

SQL> drop table t purge ;
SQL> set sqlblanklines on
SQL> create table t(
  2
  3  a number(3)
  4  )
  5  /

        再次执行一切OK了。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/267265/viewspace-712957/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: oracle 9i index bug?
请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    4006
  • 访问量
    7969425