Oracle 版本:10.2.0.1
OS: Linux 64位
在SQL中使用了正則:
SELECT COUNT(*)
FROM T
WHERE REGEXP_LIKE(T.NOTE, '^(.|+)*(\(二種同時存在一種\))+', 'i')
第一次可以執行,第二次執行報ORA-7445,session 中斷。
Trace 檔案中的記錄如下:
Exception signal: 11 (SIGSEGV), code: 1(Address not mapped to object), addr: 0x5e, PC: [0x2a95574358,_intel_fast_memcpy.A()+10]
*** 2012-07-25 17:01:42.331
ksedmp: internal or fatal error
ORA-07445: exceptionencountered: core dump [_intel_fast_memcpy.A()+10] [SIGSEGV] [Address notmapped to object] [0x00000005E] [] []
MOS上有篇文檔說明:
Ora-7445 [Kghalp] using REGEXP or TABLEfunctions [ID 415567.1]
在Oracle 10.1.0.4 到10.2.0.2 版本,在SQL 中使用Regex或者TABLE()函數。可能會觸發ORA-7445的錯誤。MOS中提到的是:
ORA-07445: exception encountered: core dump[kghalp()+53]
這裡的core dump 與我這裡的有所不同,根據MOS的說明,在使用正則或者表函數導致的ORA-7445錯誤,core dump 還應該包含:kghalp evarxalc lxreggenpblxregcomp lxkRegexpComp ...
這裡導致這個錯誤是Oracle 的 bug:4440681,不過我這裡的現象和這個bug 有一定出入,但也排除了其他的幾個可能的原因。還是懷疑和這個bug有關,該Bug 在oracle 10.2.0.3以後的版本中已經修複,讓朋友將DB 升級到10.2.0.4,在測試一下。
-------------------------------------------------------------------------------------------------------
著作權,文章允許轉載,但必須以連結方式註明源地址,否則追究法律責任!
Skype: tianlesoftware
QQ: tianlesoftware@gmail.com
Email: tianlesoftware@gmail.com
Blog: http://www.tianlesoftware.com
Weibo: http://weibo.com/tianlesoftware
Twitter: http://twitter.com/tianlesoftware
Facebook: http://www.facebook.com/tianlesoftware
Linkedin: http://cn.linkedin.com/in/tianlesoftware
-------加群需要在備忘說明Oracle資料表空間和資料檔案的關係,否則拒絕申請----
DBA1 群:62697716(滿); DBA2 群:62697977(滿) DBA3 群:62697850(滿)
DBA 超級群:63306533(滿); DBA4 群:83829929 DBA5群: 142216823
DBA6 群:158654907 DBA7 群:172855474 DBA總群:104207940