ORA-00911,"911"看着很霸气的错误号,虽然我还是Oracle的初学者,但每次碰到一个未见过的ORA错误号后,都有一种查案的赶脚,根据错误号、OERR、相关错误信息,判断错误原因以及找到解决方案或替代方案,虽然大部分可能还是参考前辈或官方,但碰到一次后,至少是似曾相识了,再次碰到时即使不记得,大概也能有个方向。

话说回来,这个ORA-00911的错误,是在一段用JAVA写的测试用例中碰到的,

...

private static final String SQL_INSERT_TBL = "insert into tbl (id, ...) "
            + "values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, SYSDATE, SYSDATE);";

报的是这段SQL有这个错误。

看看错误描述:

ORA-00911 invalid character
Cause: Special characters are valid only in certain places. If special characters other than $, _, and # are used in a name and the name is not enclosed in double quotation marks ("), this message will be issued. One exception to this rule is for database names; in this case, double quotes are stripped out and ignored.
Action: Remove the invalid character from the statement or enclose the object name in double quotation marks.

很明显,这个错误主要是因为SQL中包含了非法字符,解析的时候出现报错。

但这个SQL很简单啊,就是一条INSERT语句,将他拷贝到plsql developer中好像是可以的啊,奇怪了。

调试很多次后,忽然发现,定义中结尾有个“;”,难道是这个的问题?

于是首先在plsql developer中执行INSERT语句,结尾带了两个“;”,果然报了这个ORA-00911错误。

修改代码中的语句:

private static final String SQL_INSERT_TBL = "insert into tbl (id, ...) "
            + "values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, SYSDATE, SYSDATE)";

果然,正常回显了。

一个看似简单,但挑错较麻烦的错误,值得自己的总结。

1. OERR错误描述是基准,要顺着这个方向排查,基本方向可以明确

2. 代码中出现的SQL错误,可以在plsql developer等工具中重新执行来模拟错误,但一定要和代码中的SQL语句一样,这里我可能拷贝的时候就没有带结尾的;,以至于第一次没有发现这个错误,总之一句话,除了需要判断大方向,最重要的一点就是细心,不要放过任何一个小的细节

可以参考杨长老曾经一样遇到的这个ORA-00911错误:http://blog.itpub.net/4227/viewspace-68615/

ORA-00911错误相关推荐

  1. linux下ora-12505,甲骨文临时ORA 12505错误后的Linux启动

    我遇到与Oracle一个很奇怪的现象,也许有人可以帮助我,让我总结一下真正的快:甲骨文临时ORA 12505错误后的Linux启动 我的首选操作系统是Debian的Linux操作系统,我使用的是Ora ...

  2. oracle with ora 00911,函数报ORA-00911错误

    以下是完整的函数和在存储过程中的调用: create or replace function f_get__tzcx_lx( jdxzin in varchar2, swsin  in varchar ...

  3. java ora 00911_ORA-00911错误

    ORA-00911,"911"看着很霸气的错误号,虽然我还是Oracle的初学者,但每次碰到一个未见过的ORA错误号后,都有一种查案的赶脚,根据错误号.OERR.相关错误信息,判断 ...

  4. 关于Oracle的ORA 12505错误 ORA-12505, TNS:listener does not currently know of SID given in connect descrip

    报错是这样的:ORA-12505, TNS:listener does not currently know of SID given in connect descriptor 一直用的好好的,突然 ...

  5. oracle提示01034,oracle数据库ORA 01034错误问题解决方案

    ORA-01034错误的话: Oracle常见错误之一 这是个Oracle数据库服务器比较常见的错误.有经验的用户几乎马上就能解决这个错误,再不济也能马上到Metalink去搜索一下. 不幸的是,大多 ...

  6. linux ora 00911,python – DatabaseError:ORA-00911:无效字符

    我有以下代码在Oracle db中执行sql问题: try: conn = cx_Oracle.connect(DB_LOGIN+"/"+DB_PWD+"@"+ ...

  7. PLSQL连接Oracle数据库时报ORA 12154错误的解决方法

    pl/sql连接Oracle时遇到的问题: 解决办法:安装后将Oracle安装目录下的文件夹network(包括其中的子文件,其中主要是tnsnames.ora) 在pl/sql菜单–"工具 ...

  8. oracle导出1455,oracle 11g导出数据时报ORA 1455错误的处理方法

    由于导出的该用户的表可能存在空数据表,那么可能就会出现此其异常. 首先: 查看: show parameter deferred_segment_creation;@H_403_7@ 如果为TRUE, ...

  9. dbca asm ora 01017错误

    执行dbca,到选择数据库位置的时候,报错内容Can not use ASM for database storage due to ... ORA-01017: invalid username/p ...

  10. linux ora 00911,ORA-00911: 无效字符

    ORA-00911: 无效字符,注意上面代码中的 ; 号,这个在execute immediate执行时就会报错,属于多余字符,在plsql中必须去掉, ; 号 sql_code := 'insert ...

最新文章

  1. 如何创建自己的ESLint配置包
  2. 独家 | 神经网络的对抗性攻击:快速梯度符号方法的探索(附链接)
  3. 占用过高_Windows10电脑磁盘占用率过高,用这二招轻松解决
  4. Python EFZ文件 气象_python的日常应用-gt;入门篇01
  5. 设置edittext不自动获取焦点
  6. (07)Vivado约束顺序
  7. Linux中shell编程的for循环用法
  8. ❤️《IOC理论推导》
  9. 统计学习方法读书笔记7-K近邻习题
  10. pdf文件如何生成目录 wps_如何使用WPS把Word文档转换为PDF文档并生成目录?
  11. 哔哩哔哩没有html5播放,解决哔哩哔哩网页版视频空白不能播放的方法
  12. office创建数据透视表
  13. python在文本添加超链接_在Markdown中快速插入超链接的Workflow
  14. java qlv转mp4 代码_如何将QLV视频格式转换成MP4视频
  15. 英语中与数字有关的表达方式
  16. Linux控制Nvidia显卡风扇转速
  17. 高通平台SPI配置方法
  18. 可能改变前端工程化未来的特性:ESM Loader Hooks
  19. 基于https搭建habor私有库
  20. Vue中插入base64图片

热门文章

  1. CF-IOT云端通讯协议
  2. 《惢客创业日记》2019.02.18(周一)不玩手机还能干什么?
  3. 【笔记】Pycharm配置Node.js运行js代码
  4. 狗日的360浏览器 游戏AS弹窗口被阻止
  5. GBA游戏卡带的几种记忆类型
  6. php 活动报名,phpcms 活动报名功能详解一 【原创】
  7. 第三章 初识MFCC以及Wavenet神经网络
  8. 程序员哇,你想在下个情人节或者520脱单么?这个秘籍不能错过
  9. 图片底部圆弧(border-radius的各种形状)
  10. 恒星播放器 1.400 中文版 ,一款全格式高清4K播放器