记录一个关于oracle的坑, 执行oracle脚本时,报错 [Err] ORA-00911: invalid character,网上有说是sql结尾用了中文分号(;)导致的,有的说是编码问题的等等。但是检查了我的sql后,并不是那些情况。
这里先说我得出的结论:sql注释中的引号(单引号、双引号)如果在注释中没有闭合(不是成对的),使得sql在注释的引号范围内,是会导致sql执行报错的。
所以,为了避免这种问题,不要在注释中使用引号!不要在注释中使用引号!不要在注释中使用引号!
排查和测试过程如下:(感兴趣可以看下)
经过一番排查,最终将问题定位到下表的建表语句上。此处省略无关的sql内容,sql和执行结果如下:
1.
2. 怀疑是注释里的特殊字符问题, 于是做了如下测试,去掉了一行注释,居然正常了,果然是引号(')的问题,但是这里也有让人疑惑的现象,比如在第一个表的sql中存在未闭合的引号会执行报错,但是只有第二表中存在一个单引号的话,却可以正常执行。
(奇怪的现象)
3. 在注释中将引号闭合, 也是可以正常执行的:
这里没有继续深究,总之记着尽量不要在注释中用引号!
来源:CSDN
作者:Dangelo_Shi
链接:https://blog.csdn.net/jian876601394/article/details/103426888