在sqlplus中执行语句时候报unknown command beginning错误
提交给维护部门批量修改数据的文件,在sqlplus中执行时候报错
SP2-0734: unknown command beginning "where t.bg..." - rest of line ignored.
SQL> 19‘,‘YYYY-MM-dd‘),0); SP2-0734: unknown command beginning "19‘,‘YYYY-..." - rest of line ignored.
等等。
【原因分析及解决方法】
原来Sql*plus中, 不允许一条sql语句内有空行(当然,sql语句间有空行没有关系), 这在从其它地方拷贝脚本到sql*plus中执行时很麻烦.
原因是sqlplus遇到空行就认为是语句结束了.
其实要改变这种现象, 只要使用SQLBLANKLINES参数就可以了
oracle@BEIJING.COM> SET SQLBLANKLINES ON
附加例子:
SQL> @1.sql
SP2-0734: 未知的命令开头 "id varchar..." - 忽略了剩余的行。
SP2-0734: 未知的命令开头 "name varch..." - 忽略了剩余的行。
SP2-0734: 未知的命令开头 "age varcha..." - 忽略了剩余的行。
SP2-0042: 未知命令 ")" - 其余行忽略。
SP2-0044: 要获取已知命令的列表, 请输入 HELP;
输入 EXIT 可退出。
提交完成。
SQL>
其中1.sql中的内容为:
create table person
(
id varchar(32) not null primary key ,
name varchar(20) not null ,
age varchar(20) not null
)
commit ;
上述一条sql语句内有空行。
============================================================
解决sqlplus里执行@sql.sql发生的错误现象 |
【赛迪网-IT技术报道】这篇论坛文章(赛迪网技术社区)着重介绍了sqlplus里执行@sql.sql发生的错误现象的解决方法,更多详细内容请参考下文: 昨天准备下班,应用打来电话说有事过去看个问题, 过去一看,发现是在sqlplus里执行SQL文件出现了错误,错误如下: SQL>@sql.sql SP2-0734:unknown command beginning "sql.sql" - rest of line ignored. 当时没有解决,出现这个错误使用的是NetTerm终端工具,怀疑是终端或环境变量设置的问题,使用windows自带的telnet工具登录到远程服务器还是出现同样的问题,最后,换台机器使用crt登录后问题解决。 今天,在网上查查了原因还是系统环境变量的设置问题,使用stty kill ^U可以解决: stty erase "^H" kill "^U" intr "^C" eof "^D" 如果是由于脚本文件sql.sql里的某些sql语句内存在空行而报上述错误的话,可以使用如下命令解决: set sqlblanklines on
参考: sqlplus @ sp2-0734 百度
|