我申请这个blog是为了督促自己,把自己平时的一些想法和思考结果保留下来。 本博客所有内容均为原创,如有转载请注明作者和出处

ORA-600(rpidrv-3)错误

上一篇 / 下一篇  2008-05-15 23:53:22 / 个人分类:Bug

一个没有什么危害的小bug。当建立视图时,访问一张不存在的表时,可能引发这个错误。

 

 

错误信息为:

Errors in file /u1/oracle/admin/repdb01/udump/repdb01_ora_4346.trc:ITPUB个人空间w0Qh'v$~
ORA-00600: internal error code, arguments: [rpidrv-3], [], [], [], [], [], [], []

对应的trace文件中,错误信息为:

ksedmp: internal or fatal error
t,YU.j u9z0ORA-00600: internal error code, arguments: [rpidrv-3], [], [], [], [], [], [], []
4C&s{g!}R0Current SQL statement for this session:
'D`S~GvU@'M0create or replace view zh_ndmain.gpo_reg_product_public as
vD yo]aj0selectITPUB个人空间:{!j(Nm_
                                a.ID,
uQ wP5F.y)q5w0                                b.DATA_PRODUCT_ID,
KO%FQ _-Y(Q I0                                a.REG_ORG_ID as MANUFACTURE_ID,ITPUB个人空间C \,E5aY@2BOoa
                                a.STATUS,
d#h.sl4Q B0                                a.REG_DATE,
/z^*tN^%s0                                a.REG_END_DATE,
!o1`8y RI0                                a.EXPIRY_STATUS,
wd2]:Py0                                a.CREATE_DATE,
(c;E$\Mo"n\{ B0                                a.CREATE_USER,ITPUB个人空间X}G'pB U
                                a.LAST_UPDATE_DATE,ITPUB个人空间Ui){5DY_L
                                a.LAST_UPDATE_USER,ITPUB个人空间']I3K-~R%X
                                a.REMARK,
S7mu5r-u0                                a.BID_FLAG,ITPUB个人空间j,_*G5h.j'\Yt
                                a.TRADE_FLAG
V.~xbT.o0a0          from GPO_AGENT_SELLER a,GPO_REG_PRODUCT b
%h(? n0s M"z-ynY1}0          where a.REG_PRODUCT_ID=b.id
v%v?$`2]Y0^L0          and a.agent_level in(1,2)
|KKo.bT0----- Call Stack Trace -----
3tT/I4O*^:e3hq;n0calling              call     entry                argument values in hex     
!rmU4lX6[^,I;Ff0location             type     point                (? means dubious value)    
+Z$S H g`h+CE+K } _0-------------------- -------- -------------------- ----------------------------ITPUB个人空间#J:d4x7?S:T ]'UmH
ksedmp()+328         CALL     ksedst()+0           FFFFFFFF7FFF5850 ?ITPUB个人空间9} friF#mQ9M
                                                   000000000 ? 000000000 ?ITPUB个人空间fP2h4C1DP,@1]^/U'MK'U
                                                   00000003E ?
+ML*~oZ*P yo0                                                   FFFFFFFF7FFF60E8 ?ITPUB个人空间+b5{w}a@!Fi]
                                                   1031D56C8 ?ITPUB个人空间I{^KG
kgerinv()+184        PTR_CALL 0000000000000000     000000000 ? 000103400 ?ITPUB个人空间\g4]}s
                                                   0001035D9 ?000102C00 ?ITPUB个人空间%^(D{ i9n
                                                   1035D9000 ? 1035D9C28 ?ITPUB个人空间e D;ZSr\]
kgesinv()+20         CALL     kgerinv()+0          1035D9E88 ? 1036FA708 ?ITPUB个人空间j:HR ~ l%c0_&`
                                                  0000013C8 ? 000000000 ?
\7V V.vk:CI_ p0                                                   1035DBF94 ? 1035DB258 ?ITPUB个人空间6si)kA? `ZzA
ksesin()+88          CALL     kgesinv()+0          1035D9E88 ? 1036FA708 ?
/BP&Wl{T0                                                   103195D60 ? 000000000 ?
2PK f'it#fTO0                                                   FFFFFFFF7FFF6A00 ?
a"q"?w#s3~;x q,UK0                                                   FFFFFFFF7CF5CD48 ?ITPUB个人空间$b+_'B1j[7|
rpidrv()+2748        CALL     ksesin()+0           103195D60 ? 000000000 ?ITPUB个人空间*P*OH^n Ks%l+W
                                                   000000000 ?1002272A0 ?
4H ZD^j Z9MX0                                                   07FFFFC00 ?400C7381A50 ?
7JxD~7tW l0rpiope()+72          CALL     rpidrv()+0           000000064 ? 0001035E5 ?
$^ B6R E:CsL:m)C+G0                                                   000000000 ? 000000008 ?
6E)y;oS7v0                                                  400C735F8E0 ?
%JU?#\tk[)V?0                                                   FFFFFFFF7FFF6B38 ?ITPUB个人空间Eb$hc5|w%Au
kqdgtc()+360         CALL     rpiope()+0           000000002 ?38001A738 ?ITPUB个人空间l6s$wq8X^
                                                   000000002 ? 000000000 ?ITPUB个人空间4Y'YDr^d
                                                   000000010 ? 000000000 ?

根据错误函数查询,找到metalink上对应的bug描述:Doc ID: Note:2949392.8

根据Oracle的描述,这个错误确认影响的版本是9204920510G都已经解决了这个bug

根据bug中的描述,当Oracle在创建一个视图的时候,没有检查创建视图的用户是否是一个存在的用户,从而导致了内部错误的发生。

比如下面就模拟了这个错误的产生,其中ABC用户并不存在:

SQL> CREATE OR REPLACE VIEW ABC.CAT_VIEW ASITPUB个人空间@%g3n#K1P1}'`(F
  2  SELECTITPUB个人空间2f2|%VleV"U
  3     A.ID,
z&r spb"RP0  4     B.ID,
Yq7qc'Z I.Jf"c0  5     A.NAME,
!~?rGCgv0  6     A.ENABLE_FLAG
9rqw3SF L&f0  7  FROM CAT_NOT_EXIST B, CAT_ORG A
f7r/r.zVU1m~2@0  8  WHERE A.ID=B.IDITPUB个人空间;M-ol X7o\Y
  9  ;
I1`:j [H[C-s0FROM CAT_NOT_EXIST B, CAT_ORG A
w4} } F5G:y {X [0                      *
[h:Rh*~c0ERROR at line 7:ITPUB个人空间cf0Rz/I%qhN1}
ORA-00604: error occurred at recursive SQL level 1ITPUB个人空间 Pr8i)}O8C
ORA-00600: internal error code, arguments: [rpidrv-3], [], [], [], [], [], [], []

而最简单的避免方法莫过于在所在的表上加上用户名前缀,这样就可以避免内部错误的产生,从而报错表或视图不存在:

SQL> CREATE OR REPLACE VIEW ABC.CAT_VIEW AS
(O]3t~7~y7Pgz0  2  SELECT
*A8REQ&lS0  3     A.ID,ITPUB个人空间0JYss] hvn
  4     B.ID,ITPUB个人空间 UggM8z)\G1~
  5     A.NAME,ITPUB个人空间.Q:w9A wf;ZYeeG'N
  6     A.ENABLE_FLAGITPUB个人空间c7v4I4qg%_(zEL
  7  FROM ABC.CAT_NOT_EXIST B, ABC.CAT_ORG A
7k d yxRr!W7}0  8  WHERE A.ID=B.ID
l'^1k$i eX0  9  ;
J0Z4gN T^(n~Z0O0FROM ABC.CAT_NOT_EXIST B, ABC.CAT_ORG A
v["z3? W0                              *
+C(y@ qg*q0ERROR at line 7:
eu3q]5K(Ge'`0ORA-00942: table or view does not exist

这个bug本身没有任何的危害,只是没有给出真正导致错误的错误信息而已。

 


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar