前段時間在做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數據庫后,重新安裝該補丁(這個補丁就和安裝版的數據庫一樣),然后再測試,就都正常了。