Oracle insert语句无端报错:无效字符。inset语句应该正确?

Oracle insert语句无端报错:无效字符。inset语句应该正确?,第1张

本来我觉得,第一个中的时间格式不能这么直接输入,应该是用to_date语句转换,直接这么写数据库好像不认识。

但是后面那个语句这么简单也报错,那就不是,我仔细看了一下第二个语句,你的values后面好像没有空格。至于分号这个,当oracle不知道报什么错的时候就会报这个,所以暂时可以不看,不过语句中也确实没有分号,你可以先在values后面加上一个空格试试,如果还不行那么可能就是分号的问题了,不过个人觉得可能性不大。

pydwh,我写了c.sql,内容是

insert into t2 values('4','aaa')

insert into t2 values('5','bbb')

insert into t2 values('6','ccc')

执行sql>@e:\c.sql可以插入3行。

同样的语句在sql里直接执行

SQL>r

1 insert into t2 values('7','aa')

2 insert into t2 values('8','bb')

3* insert into t2 values('9','cc')

insert into t2 values('7','aa')

*

ERROR 位于第 1 行:

ORA-00911: 无效字符

把后面的号删除,再执行

SQL>r

1 insert into t2 values('1','aaaa')

2 insert into t2 values('2','bbbb')

3* insert into t2 values('3','cccc')

insert into t2 values('2','bbbb')

*

ERROR 位于第 2 行:

ORA-00933: SQL 命令未正确结束

SQL>r

1 insert into t2 values('7','aa')

2 insert into t2 values('8','bb')

3* insert into t2 values('9','cc')

方法实际上是给SQL*PLUS提供了包含多个语句的块,可是却没有BEGIN...END扩起来,所以它不认了。

而使用@c.sql方法,SQL*PLUS读取该文件,按照sqlterminal进行语句的分割,然后逐句运行的,而不是作为一个块运行的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9945677.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存