前段时间在做oracle查询的时候遇到了一个非常奇怪的现象,现将现象和解决过程记录下来,以备查看:
环境描述:A数据库通过dblink访问B数据库的视图,B数据库的视图的数据是通过B的dblink连接到C数据库的某个物理表。
现象描述:在程序里通过jdbc连接A数据库,查询B数据库的视图,报错:ORA-00600: internal error code, arguments: [kxxx], [], [], [], [], [], [],
[], [], [], [], [],
排错过程:用C#写了个小程序连接测试,发现也是报这个异常,随后通过plsql测试了一下,发现在plsql中查询如果结果集不大于4行,就能查到,否则也是报 ORA-00600: internal error code, arguments: [xxxx], [], [], [], [], [], [],但是第一个[]里面的错误不一样。当时觉得很奇怪,后来网上查询的信息表示这可能是oracle11gR2的bug,必须升级到11.2.0.2以上的版本才行,检查了一下当前A数据库的版本:11.2.0.1,抱着试试看的态度准备从oracle官网下载一个windows下的11.2.0.2或以上的版本试试看,但是发现尽然不提供window下的11.2.0.2以上的版本下载,后来找到了11.2.0.4的补丁,但是oracle官网要求必须提供客户号才能有权限下载,客户号的注册又必须和oracle先签订什么合同,反正非常麻烦,再后来,到网上别的非官方的资源上下载了一个11.2.0.2的补丁,删除掉A数据库后,重新安装该补丁(这个补丁就和安装版的数据库一样),然后再测试,就都正常了。