oracle踩坑: [Err] ORA-00911: invalid character

笑着哭i 提交于 2019-12-16 23:06:37

记录一个关于oracle的坑, 执行oracle脚本时,报错 [Err] ORA-00911: invalid character,网上有说是sql结尾用了中文分号(;)导致的,有的说是编码问题的等等。但是检查了我的sql后,并不是那些情况。

这里先说我得出的结论:sql注释中的引号(单引号、双引号)如果在注释中没有闭合(不是成对的),使得sql在注释的引号范围内,是会导致sql执行报错的。

所以,为了避免这种问题,不要在注释中使用引号!不要在注释中使用引号!不要在注释中使用引号!

排查和测试过程如下:(感兴趣可以看下)

经过一番排查,最终将问题定位到下表的建表语句上。此处省略无关的sql内容,sql和执行结果如下:

1.

2. 怀疑是注释里的特殊字符问题, 于是做了如下测试,去掉了一行注释,居然正常了,果然是引号(')的问题,但是这里也有让人疑惑的现象,比如在第一个表的sql中存在未闭合的引号会执行报错,但是只有第二表中存在一个单引号的话,却可以正常执行。

(奇怪的现象)

3. 在注释中将引号闭合, 也是可以正常执行的:

这里没有继续深究,总之记着尽量不要在注释中用引号!

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!