在sqlplus中执行语句时候报错误SP2-0734: 未知的命令开头"id varchar..." - 忽略了剩余的行

在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 百度

sqlplus @  百度


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值