标签:出现 from ssi SQ === table -- EDA pre
两年没有接触oracle了,中午,一环境update from的时候出现ORA-00600: internal error code, arguments: [13030], [20]异常,经查,官网所述为涉及到了v$表所致,典型举例比较多的是v$session,但我们不涉及任何v$表的查询。原sql类似如下:
UPDATE ( SELECT a.f_assign aassign, b.f_offsetincome bf_offsetincome FROM XXX a, YYY b, ZZZ c WHERE a.c_fundcode = b.c_fundcode
........................... AND a.c_tacode = b.c_tacodeAND a.d_cdate = c.d_sysdate AND a.c_tacode = c.c_tacode ) SET aassign = bassign, af_offsetincome = bf_offsetincome
alert.log如下:
*** 2018-06-25 11:06:35.426 *** SESSION ID:(7639.3314) 2018-06-25 11:06:35.426 *** CLIENT ID:() 2018-06-25 11:06:35.426 *** SERVICE NAME:(ora11g) 2018-06-25 11:06:35.426 *** MODULE NAME:(hsserver@localhost.localdomain (TNS V1-V3)) 2018-06-25 11:06:35.426 *** ACTION NAME:() 2018-06-25 11:06:35.426 updrow: CR error table 0 - rowid: 00094651.01800487.22 code 20 updRT frame @0xcb286058 kccArr_qedmDml 0xcb285f10 nKccs_qedmDml 38 kaf_qedmDml 0xcee756f8 nKaf_qedmDml 16 kct_qedmDml 0xc5b016b0 rowid_qedmDml 0xd0bb50c8 kau_qedmDml (nil) delayedKau_qedmDml (nil) return_qedmDml (nil) trigger_qedmDml (nil) olc_qedmDml (nil) ntbCtx_qedmDml (nil) insTrig_qedmDml (nil) hier_qedmDml (nil) dynCon_qedmDml (nil) check_qedmDml (nil) rlsCheck_qedmDml (nil) fga_qedmDml (nil) cses_qedmDml (nil) elrtx_qedmDml (nil) pmap_qedmDml (nil) lbnr (nil) upes_qedmUpd 0xcb285ec8 nCols_qedmUpd 9 kdu_qedmUpd 0xc8efea10 kauxu_qedmUpd (nil) rhsCols_qedmUpd (nil) nRhsCols_qedmUpd 0RHS Columns: hiLogCol_qedmUpd 1 hiCmpCol_qedmUpd 37 hiCpyCol_qedmUpd 37 hiUpdCol_qedmUpd 37 kaf_qedmUpd (nil) nKaf_qedmUpd 0 iotKeys_qedmUpd (nil) ntabOpn_qedmUpd (nil) rhc_qedmUpd (nil) cpykafidx_qedmUpd 0xc8efe5a0 cpykafidxcc_qedmUpd 0 cpykccidx_qedmUpd 0xc8efe5c0 cpykccidxcc_qedmUpd 0 flags_qedmUpd 0x80800 rpkKauxu_qedmUpd (nil) Incident 1689338 created, dump file: /home/oracle/diag/rdbms/ora11g/ora11g/incident/incdir_1689338/ora11g_ora_26226_i1689338.trc ORA-00600: ??????????, ????: [13030], [20], [], [], [], [], [], [], [], [], [], []
ora11g_ora_26226_i1689338.trc如下:
Dump continued from file: /home/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_ora_26226.trc ORA-00600: ??????????, ????: [13030], [20], [], [], [], [], [], [], [], [], [], [] ========= Dump for incident 1689338 (ORA 600 [13030]) ======== *** 2018-06-25 11:06:35.699 dbkedDefDump(): Starting incident default dumps (flags=0x2, level=3, mask=0x0) ----- Current SQL Statement for this session (sql_id=5b2qrzuc0ym55) ----- update (select a.f_assign aassign, a.f_unassign aunassign, a.f_encashratio aencashratio, a.f_changeratio achangeratio, a.c_vastflag avastflag, a.f_subscriberatio asubscriberatio, a.c_excessflag aexcessflag, a.f_structuredratio astructuredratio, a.f_offsetincome af_offsetincome, b.f_assign bassign, b.f_unassign bunassign, b.f_encashratio bencashratio, b.f_changeratio bchangeratio, b.c_vastflag bvastflag, b.f_subscriberatio bsubscriberatio, b.c_excessflag bexcessflag, b.f_structuredratio bstructuredratio, b.f_offsetincome bf_offsetincome from ta_tnetvalueday a, ta_tnetvaluedaytmp b, ta_ttainfo c where ( a.c_tacode=‘F6‘ ) and a.c_tenantid = ‘*‘ and a.d_cdate = b.d_cdate and a.d_netvaluedate = b.d_netvaluedate and a.c_fundcode = b.c_fundcode and a.c_tacode = b.c_tacode and a.c_tenantid = b.c_tenantid and a.d_cdate = c.d_sysdate and a.c_tacode = c.c_tacode and a.c_tenantid = c.c_tenantid) set aassign = bassign, aunassign = bunassign, aencashratio = bencashratio, achangeratio = bchangeratio, avastflag = bvastflag, asubscriberatio = bsubscriberatio, aexcessflag = bexcessflag, astructuredratio = bstructuredratio, af_offsetincome = bf_offsetincome ----- Call Stack Trace ----- calling call entry argument values in hex location type point (? means dubious value) -------------------- -------- -------------------- ----------------------------
经查:
https://grepora.com/tag/ora-600/
http://yangtingkun.net/?p=492
https://grepora.com/2017/04/12/ora-00600-internal-error-code-arguments-13030-20/
http://db.geeksinsight.com/2013/03/12/ora-00600-internal-error-code-arguments-13030-20/
均不是上述问题所致,但通过类似信息可知,应该是部分数据不一致的问题所致,故改写sql如下:
UPDATE XXX a SET ( f_assign, f_offsetincome ) = ( SELECT b.f_assign, b.f_unassign, b.f_structuredratio, b.f_offsetincome FROM YYY b,ZZZ c WHERE a.d_cdate = b.d_cdate AND a.d_netvaluedate = b.d_netvaluedate AND a.c_tenantid = c.c_tenantid ) WHERE exists (select 1 FROM YYY b,ZZZ c WHERE a.d_cdate = b.d_cdate AND a.d_netvaluedate = b.d_netvaluedate AND a.c_tacode = c.c_tacode AND a.c_tenantid = c.c_tenantid)
问题解决。
ORA-00600: internal error code, arguments: [13030], [20]一例解决
标签:出现 from ssi SQ === table -- EDA pre
原文地址:https://www.cnblogs.com/zhjh256/p/9223888.html