您的位置:首页 > 数据库

sqlplus执行有空行的SQL语句

2016-04-18 11:12 148 查看
1.1 SQL语句有空行,无法在PLSQL中执行

拷贝有空行的SQL语句到PLSQL或者SQL*PLUS中执行报错。

1.1.1 现象描述

XX报表系统在安装时,需要从文本编辑工具中拷贝SQL语句到PLSQL中执行,在PLSQL的执行窗口中,会出现空行,比如下面的脚本:

CREATE OR REPLACE VIEW v_userlog

AS

SELECT

logid, --日志编号

logtime, --操作时间

phonenumber, --用户号码

servicetype, --业务类型

operatetype,

olditem, --修改前状态

newitem, --修改后状态

admincode , --客服帐号

reasoncode , --原因编号

reason, --原因名称

operator, --操作来源

oldttlid,

newttlid

FROM t_userlog;

如果拷贝到PLSQL或者SQL*PLUS中执行, 就会出现错误:

SQL>

FROM t_userlog

ORA-00900: 无效 SQL 语句

SQL>

1.1.2 原因分析

根据报错信息来看,是由于SQL语句中的空行引起的。空行的出现可能是由于在某些文本编辑工具中自动加入不可见的换行字符引起的。

1.1.3 处理过程

1、 本可以通过删除空行的方法来解决,但报表系统中SQL语句何止千行,所以手工删除的方法实不可取。

2、 使用SQLBLANKLINES参数,即可接受SQL语句中的空行,进而解决此问题:

SQL> SET SQLBLANKLINES ON

SQL>

CREATE OR REPLACE VIEW v_userlog

AS

SELECT

logid, --日志编号

logtime, --操作时间

phonenumber, --用户号码

servicetype, --业务类型

operatetype,

olditem, --修改前状态

newitem, --修改后状态

admincode , --客服帐号

reasoncode , --原因编号

reason, --原因名称

operator, --操作来源

oldttlid,

newttlid

FROM t_userlog;

SQL>

View created

SQL>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: