基本情况:
nmjf2$oslevel -r
5300-05
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production
PL/SQL Release 9.2.0.8.0 - Production
CORE 9.2.0.8.0 Production
TNS for IBM/AIX RISC System/6000: Version 9.2.0.8.0 - Production
NLSRTL Version 9.2.0.8.0 – Production
警告日志:
Errors in file /oracle/app/oracle/admin/jfnm/udump/jfnm_ora_1224740.trc:
ORA-00600: internal error code, arguments: [qerrmObnd1], [932], [ORA-00932: inconsistent datatypes: expected got
], [], [], [], [], []
Wed Jun 24 10:39:17 2009
Errors in file /oracle/app/oracle/admin/jfnm/udump/jfnm_ora_1224740.trc:
ORA-07445: exception encountered: core dump [] [] [] [] [] []
ORA-00600: internal error code, arguments: [qerrmObnd1], [932], [ORA-00932: inconsistent datatypes: expected got
], [], [], [], [], []
部分TRACE文件部分:
nmjf2$more /oracle/app/oracle/admin/jfnm/udump/jfnm_ora_1224740.trc
/oracle/app/oracle/admin/jfnm/udump/jfnm_ora_1224740.trc
Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production
With the Partitioning option
JServer Release 9.2.0.8.0 - Production
ORACLE_HOME = /oracle/app/oracle/product/9.2.0
System name: AIX
Node name: nmjf2
Release: 3
Version: 5
Machine: 000B91E0D600
Instance name: jfnm
Redo thread mounted by this instance: 1
Oracle process number: 109
Unix process pid: 1224740, image: oracle@nmjf2 (TNS V1-V3)
*** SESSION ID:(115.61382) 2009-06-24 10:39:16.639
*** 2009-06-24 10:39:16.639
ksedmp: internal or fatal error
ORA-00600: internal error code, arguments: [qerrmObnd1], [932], [ORA-00932: inconsistent datatypes: expected got
], [], [], [], [], []
Current SQL statement for this session:
select a.cardno,a.saledate,a.saleempid,a.saledeptid,a.companyid,c.frameworkname
from tab_card@dl_zhyz1 a,rcpms_cardinfo b ,ucis_tab_framework@dl_zhyz1 c
where to_char(a.vadate,:"SYS_B_0")=:"SYS_B_1" and a.cardtypeid =:"SYS_B_2"
and a.cardno= b.serialnumber and b.type =:"SYS_B_3" and a.companyid=c.frameworkid
----- Call Stack Trace -----
calling call entry argument values in hex
location type point (? means dubious value)
-------------------- -------- -------------------- ----------------------------
ksedmp+0148 bl ksedst 1025F5B1C ?
ksfdmp+0018 bl 01FDA694
kgerinv+00e8 bl _ptrgl
kgesinv+0020 bl kgerinv FFFFFFFFFFF8710 ? 000000000 ?
10054AA48 ? 000000000 ?
000000000 ?
ksesin+005c bl kgesinv 000000000 ? FFFFFFFFFFF8830 ?
FFFFFFFFFFF8780 ?
700000039F717A8 ? 11031F7B0 ?
OCIKSIN+011c bl ksesin 102C17078 ? 200000002 ?
000000000 ? 0000003A4 ?
000000001 ? 000000032 ?
FFFFFFFFFFF8784 ? 000008080 ?
qerrmObnd+01b4 bl OCIKSIN 11032BF70 ? 11025FD48 ?
00000009B ?
qerrmOStart+019c bl qerrmObnd 000004028 ? 110323DE0 ?
FFFFFFFFFFF8DE8 ? 11025FD48 ?
qerrmStart+01f4 bl qerrmOStart 700000039F717A8 ? 0FFFFFFFC ?
000000000 ?
rwsstd+0058 bl _ptrgl
qerhjStart+00cc bl _ptrgl
rwsstd+0058 bl _ptrgl
qerhjFetch+0244 bl _ptrgl
kpofrws+0118 bl 01FDA588
opifch2+0c50 bl kpofrws 1010FC058 ? 000000000 ?
000000000 ? 1101CB8E8 ?
000000000 ?
opiall0+1268 bl opifch2 70000002DD7F5F0 ? 100000001 ?
FFFFFFFFFFF9EA8 ?
kpoal8+0a78 bl opiall0 5E1000CE68 ? 2200000014 ?
FFFFFFFFFFFA5A8 ? 000000000 ?
FFFFFFFFFFFA4F8 ? 11025F658 ?
080000000 ? 4000000007FFF ?
opiodr+08cc bl _ptrgl
ttcpip+0cc4 bl _ptrgl
opitsk+0d60 bl ttcpip 11000CE68 ? 000000000 ?
000000000 ? 000000000 ?
000000000 ? 000000000 ?
000000000 ? 000000000 ?
opiino+0758 bl opitsk 000000000 ? 000000000 ?
opiodr+08cc bl _ptrgl
opidrv+032c bl opiodr 3C00000018 ? 4101CB8E8 ?
FFFFFFFFFFFF7A0 ? 0A01D9010 ?
sou2o+0028 bl opidrv 3C0C000000 ? 4A0220B20 ?
FFFFFFFFFFFF7A0 ?
main+0138 bl 01FDA480
__start+0098 bl main 000000000 ? 000000000 ?
--------------------- Binary Stack Dump ---------------------
引起BUG的SQL
select a.cardno,a.saledate,a.saleempid,a.saledeptid,a.companyid,c.frameworkname
from tab_card@dl_zhyz1 a,rcpms_cardinfo b ,ucis_tab_framework@dl_zhyz1 c
where to_char(a.vadate,:"SYS_B_0")=:"SYS_B_1" and a.cardtypeid =:"SYS_B_2"
and a.cardno= b.serialnumber and b.type =:"SYS_B_3" and a.companyid=c.frameworkid
问题分析:
SQL> show parameter cursor
NAME TYPE VALUE
------------------------------------ -------------------------------- ------------------------------
cursor_sharing string SIMILAR
cursor_space_for_time boolean FALSE
open_cursors integer 300
session_cached_cursors integer 0
SQL>
由于CURSOR_SHARING=FORCE 或者SIMILAR,SQL通过DB LINK访问远程的数据替换了DATE 格式的掩码信息会导致抛出这个错误。
参见METALINK
NOTE458647.1和NOTE371528.1
Cause
The cause of this problem has been identified and verified in unpublished Bug 4254094.
This problem appears to have been introduced in the 9.2.0.6 patchset.
When CURSOR_SHARING = FORCE or SIMILAR then SQL over database links which involves replaced date format mask information can result in ORA-600 [qerrmobnd1] and a dump in qerrmOdcl.
由于PATCH 4254094中没有针对于AIX平台的补丁,所以如果需要修改BUG建议修改隐含参数 _adjust_literal_replacement = TRUE
确认_adjust_literal_replacement当前的值
SQL> select ksppinm as "Hidden Parameter",
2 ksppstvl as "Value"
3 from x$ksppi join x$ksppcv
4 using (indx)
5 where ksppinm = '_adjust_literal_replacement';
Hidden Parameter
----------------------------------------------------------------
Value
--------------------------------------------------------------------------------
_adjust_literal_replacement
FALSE
修改:
alter system set "_adjust_literal_replacement"=true scope=spfile;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7882490/viewspace-607516/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7882490/viewspace-607516/