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

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

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

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

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

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

1.

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

(奇怪的现象)

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值