zoukankan      html  css  js  c++  java
  • ORA-00600:内部错误代码,参数:[kpnxdcbk-2],[],[],[],[],[],[],[],[],[],[],[]

    由于最近工作中常出现ORA-00600:内部错误代码,参数:[kpnxdcbk-2],[],[],[],[],[],[],[],[],[],[],[]这种异常!所以在这里讲一下我的处理方法。

    笔者所遇见的这种异常是因为dblink导致的,如果读者没有使用dblink,就不用看了。

    笔者认为dblink主要作用就是传数据,如果要将它使用的更广泛,就有可能出现ORA-00600:内部错误代码,参数:[kpnxdcbk-2],[],[],[],[],[],[],[],[],[],[],[]

    由于数据库中涉及dblink的是存储过程,所以就笔者就先测试了一下,结果是在数据库工具pl/sql中是可以通过测试;后来有专门用java代码调用数据库存储过程,奇怪的是,用Java代码和plsql调用同一个存储过程,plsql没问题而java代码调用就报ORA-00600:内部错误代码,参数:[kpnxdcbk-2],[],[],[],[],[],[],[],[],[],[],[]

    经多次尝试,发现将存储过程中:

    v_sql:='select * from  '||v_tableName||' where id='''||v_sampleId||'''';

    改为:v_sql:='select * from  '||v_tableName||' where id='''||v_sampleId||''''||'and 1=1';

    问题就解决了,这是数据库的一个bug,得打补丁,笔者这里没打补丁,就钻个空子,简单的就行,再说升级数据库或者给数据库打补丁都不属于我管的,那是DBA的活,等以后有机会再试着那样解决吧!

    上述解决问题的关键就是:试着将查询的sql语句后边跟一个肯定条件,如笔者加上“1=1”;

    然而上边的处理方法有时也不能解决问题,比如在开发和测试环境下那样修改就没问题啦,但线上环境还是出错;那怎么办呢?别急,我们可以试试别的方法,我当时

    是这样改的

    v_sql:='select * from t_area_province ';

    改为:v_sql:='select * from t_area_province order by id';

    后边加上的是“order by id”,问题就解决了!

    还有就是更换数据库驱动包,有同事将ojdbc6.jar,换为classes12.jar,在他本地可以,但我这边试过了,我这边结果还是解决不了,大家可以试试啊!

    综上所述,dblink导致的[kpnxdcbk-2],[],[],[],[],[],[],[],[],[],[],[]异常在这里提到四种处理方法,查询sql后加“1=1”、加“order by id(其他字段也试试啊)”和换驱动包笔者试过了,数据库升级和给数据库打补丁没试过,朋友们若有机会可以试试啊!随后,笔者水平有限,若有错误的地方还望高手指点!

  • 相关阅读:
    Linux下使用select延时
    update不能直接使用select的返回结果
    C++类模板声明与定义为何不能分开
    MySQL开启日志记录执行过的SQL语句
    如何使用FastCGI处理自定义HTTP头
    MongoDB添加认证
    Ubuntu16.04安装MongoDB
    nginx: [emerg] getpwnam(“www”) failed
    C++ 智能指针(一)
    协同过滤
  • 原文地址:https://www.cnblogs.com/lidelin/p/6743636.html
Copyright © 2011-2022 走看看