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

获取导致导入失败的数据(三)

上一篇 / 下一篇  2008-05-10 23:54:33 / 个人分类:ORACLE

前不久从一个数据库执行导出操作时报错,通过直接路径方式跳过后,导入时候再次报错。推测是由于源数据库出现的异常导致表中数据超过表定义的精度。

由于源数据库中错误记录已经被删除,因此只能想办法从导出的dmp文件中获取错误记录。

导出、导入过程的描述可以参考:

EXP9R2上导出时报错ORA-3113ORA-24324http://yangtingkun.itpub.net/post/468/460647

EXP9R2上导出时报错ORA-3113ORA-24324(二):http://yangtingkun.itpub.net/post/468/460831

继续寻找解决问题的方法,并最终获取了导致错误的记录。

获取导致导入失败的数据:http://yangtingkun.itpub.net/post/468/461401

获取导致导入失败的数据(二):http://yangtingkun.itpub.net/post/468/461600

BEFORE触发器修正数据错误:http://yangtingkun.itpub.net/post/468/461506

 

 

在上一篇中,发现采用系统触发器的方法只能获取导入操作的语句,也就是说,获取的SQL是所有问题的起源SQL,而并非导致操作的SQL语句。

也就是说,利用触发器获取错误信息的方式是行不通的。既然触发器中引发错误的SQL无法被系统触发器所捕获,那么这个SQL能不能被OracleV$SQL所捕获呢。

先做个测试,看看这种由于精度问题导致的SQL语句是否可以从V$SQL中查询到:

SQL> CREATE TABLE TEST (ID NUMBER(3));

表已创建。

SQL> INSERT INTO TEST VALUES (100);

已创建1行。

SQL> INSERT INTO TEST VALUES (1000);
3T4S@"p7wx0INSERT INTO TEST VALUES (1000)
6_MR%DM.?(E0                         *
T5u5B.|ipx0ERROR
位于第1:ITPUB个人空间_3|3Z*e+z@.C.g
ORA-01438:
值大于此列指定的允许精确度

ITPUB个人空间(t#}k$wa;T6k
SQL> SELECT SQL_TEXT FROM V$SQL WHERE SQL_TEXT LIKE 'INSERT INTO TEST VALUES%';

SQL_TEXT
5m }5F(HuW1aY rZ0-----------------------------------------------------------------------------ITPUB个人空间%Vy-r)h$a6N"a-Rv
INSERT INTO TEST VALUES (1000)
A6B:kaG qb1Pa0INSERT INTO TEST VALUES (100)

从上面的结果可以看到,由于精度问题出现的错误,是会被OracleV$SQL所记录下来的,但是如果分析阶段报错,就无法从V$SQL中查询了:

SQL> SELECT * FROM ASDFA;
~;} ZE3VY4r HB(|0SELECT * FROM ASDFA
6N0f-`+K`:~/c0s0              *ITPUB个人空间 r!N1j6b7{ d_
ERROR
位于第1:
_ d:|]-oOz,^^0ORA-00942:
表或视图不存在

SQL> SELECT SQL_TEXT FROM V$SQL WHERE SQL_TEXT LIKE '%ASDFA%';ITPUB个人空间J F4H*b'H(M:}Z)`5^
SQL_TEXTITPUB个人空间.feL?p8e3f_
---------------------------------------------------------
n2A1F(Qr(r0SELECT SQL_TEXT FROM V$SQL WHERE SQL_TEXT LIKE '%ASDFA%'

而根据上面最后一次的导入报错信息看,似乎获取的数值格式错误,出现了逗号,导致触发器中SQL语句分析时报错,而这种方式是无法被V$SQL所捕获的。

下面修改SHGOV_ORDER_BAK表,将字段改为VARCHAR2(4000),并修改触发器,使之按照字符类型插入数据:

SQL> DROP TABLE SHGOV_ORDER_BAK;

表已丢弃。

SQL> CREATE TABLE SHGOV_ORDER_BAK 
j?B%n e0  2  (
-R| U^D;in6o v0  3     TRADE_RATE VARCHAR2(4000),
gL.S$l,AG0  4     ORDER_AMOUONT VARCHAR2(4000),
N&@b)A O4x7s0  5     SEND_AMOUNT VARCHAR2(4000),ITPUB个人空间0^z%l%} ~Ec*b
  6     RECEIVE_AMOUNT VARCHAR2(4000),
#Ktm#^?QR }0  7     UNIT_PRICE VARCHAR2(4000),
d^{fRgh/id\GL%}0  8     MAX_PRICE VARCHAR2(4000),
D fp Pq3qr0  9     MIN_PRICE VARCHAR2(4000),
2x"zz p ]0 10     PRICE_RATE VARCHAR2(4000)ITPUB个人空间({c}UZ BZm
 11  );

表已创建。

SQL> CREATE OR REPLACE TRIGGER FIND_ERR_SQLITPUB个人空间rh*o(S+`I e/j4LyT7~
  2  BEFORE INSERT ON SHGOV_ORDERITPUB个人空间#a\Wl2c
  3  FOR EACH ROW
'?(ib&w-]+sKp0  4  DECLARE
7ZCLSJ xS1e {E0  5     PRAGMA AUTONOMOUS_TRANSACTION;
#oz4@k"H'JR0  6  BEGIN
1a:Y V#P0B0  7     EXECUTE IMMEDIATE 'INSERT INTO SHGOV_ORDER_BAKITPUB个人空间0`T8z!}5v#gV
  8     (
7M"dY.c;M)S0  9             TRADE_RATE, ORDER_AMOUONT, SEND_AMOUNT, RECEIVE_AMOUNT,ITPUB个人空间X_C*I6?
 10             UNIT_PRICE, MAX_PRICE, MIN_PRICE, PRICE_RATE
O6vd&H0kz0 11     )
U0v2^?/z&QZ0 12     VALUESITPUB个人空间)^"o'__6Lh
 13     (
,_3MXK.D b0 14             ''' || :NEW.TRADE_RATE || ''', ''' || :NEW.ORDER_AMOUONT || ''', '''ITPUB个人空间tx%Z3CX{+C
 15             || :NEW.SEND_AMOUNT || ''', ''' || :NEW.RECEIVE_AMOUNT || ''', '''
[*X G"V R D/r0 16             || :NEW.UNIT_PRICE || ''', ''' || :NEW.MAX_PRICE || ''', '''ITPUB个人空间z*B `r2OsO
 17             || :NEW.MIN_PRICE || ''', ''' || :NEW.PRICE_RATE || ''')';ITPUB个人空间0h*L]y8Jp"^[
 18     COMMIT;ITPUB个人空间t%P2tpba
 19  END;
"w#P F C'c0 20  /

触发器已创建

下面再次执行导致操作,准备从V$SQL中获取异常的数据:

[oracle@bjtest data]$ imp test/test file=jg080424.dmp tables=shgov_order buffer=2048000 ignore=y

Import: Release 9.2.0.4.0 - Production on星期五59 21:29:00 2008

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


bY0rdOR0
连接到: Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64bit Production
$m jpdH?8c$@8i0With the Partitioning, OLAP and Oracle Data Mining optionsITPUB个人空间[ z$i&xa%vc
JServer Release 9.2.0.4.0 - Production

经由常规路径导出由EXPORT:V09.02.00创建的文件

警告:此对象由SHGOV导出,而不是当前用户

已经完成ZHS16GBK字符集和AL16UTF16 NCHAR字符集中的导入
}?%~t%w$c$Lr0.
正在将SHGOV的对象导入到TEST
7{uh*p6KZ0. .
正在导入表                   "SHGOV_ORDER"     420835行被导入ITPUB个人空间1Z'^bSC+c_g
IMP-00009:
导出文件异常结束
R/l ~4`KT3}0
成功终止导入,但出现警告。

另人吃惊的是,导入居然成功了。要知道虽然SHGOV_ORDER_BAK表的数值类型字段全部设置为VARCHAR2(4000),但是SHGOV_ORDER表中仍然为NUMBER类型。

在触发器中直接转化为字符类型会报错,无效的数值,这一点可以参考第一篇文章中的例子,但是Oracleimp居然成功的将输入插入进去,真是不可思议。

SQL> SELECT COUNT(*) FROM SHGOV_ORDER_BAK;

  COUNT(*)
F i,~8IhT,m0----------
l3GE { t4rl{0    420835

SQL> SELECT COUNT(*) FROM SHGOV_ORDER;

  COUNT(*)ITPUB个人空间&S4iF&w` _#j
----------
Ae6r2e r `I @0    420835

SQL> DESC SHGOV_ORDER
RUV1F4x)^ wr\Ex V0 
名称                                是否为空?类型
;TS'^0{P/p+b0 ------------------------------------ -------- --------------
K8V ^!h#Ho?1f0 ORDER_ITEM_ID                        NOT NULL CHAR(24)
T)u W B V-iC$H6~a'p0 PLAT_ID                                       CHAR(24)
%c9[$bUz'n^+h0 PRODUCT_ID                                    CHAR(24)ITPUB个人空间!y*F+B"L1ur
 CODE                                          VARCHAR2(50)ITPUB个人空间 x n+GRs;MQ
 C_NAME_CHN                                    VARCHAR2(300)ITPUB个人空间~hSqEv8l8eq
 MEDICAL_ID                                    CHAR(24)
+L9d8z5u;tmh x0 MEDICAL_CODE                                  VARCHAR2(150)
&K!~ g*`kut;f[0 TRADE_NAME                                    VARCHAR2(300)ITPUB个人空间Y~%X Y"I4W*I,F\7c5N
 USE_UNIT                                      VARCHAR2(150)ITPUB个人空间8cMS*e#J"[(b4g4k2c
 USED_NAME                                     VARCHAR2(1000)
9}__qz!X0 MANUFACTURE_ID                                CHAR(24)ITPUB个人空间 K5l vfS:k1otC,]+r
 MANUFACTURE_NAME                              VARCHAR2(150)ITPUB个人空间 |"|0uV"j4mh5h1I
 MANUFACTURE_ABBR                              VARCHAR2(150)
B8Mgzt^0 M_SPELL_ABBR                                  VARCHAR2(150)ITPUB个人空间VD%WE&pH vj
 STAND_RATE                                    VARCHAR2(150)ITPUB个人空间Y&x"u,L/~:il TI
 SPEC                                          VARCHAR2(4000)
#oD0`/cG(Jr'{0 E_NAME_CHN                                    VARCHAR2(150)
-CW%\,TTyi0 JX_NAME_CHN                                   VARCHAR2(150)ITPUB个人空间-y*CIh cJ,h
 WRAP_NAME                                     VARCHAR2(150)
I/Is+ny eA0 TAX_PRICE                                     VARCHAR2(150)ITPUB个人空间X|G)~LT&a
 NATIONAL_RETAIL_PRICE                         VARCHAR2(150)
-~-wN}[$p d0 TRADE_RATE                                    NUMBER
WNV3XBP(TL0 MED_INSURE                                    VARCHAR2(100)ITPUB个人空间K$|]gU9o
 ORDER_ID                                      CHAR(24)ITPUB个人空间 r!?tf5X
 ORDER_AMOUONT                                 NUMBERITPUB个人空间K$Qz/[^3v;g
 SEND_AMOUNT                                   NUMBERITPUB个人空间"YU0v.epk*W[C
 RECEIVE_AMOUNT                                NUMBER
+e-RzkN(n+j1?&B0 UNIT_PRICE                                    NUMBERITPUB个人空间,e)jtg3F9q5|$n&w#U
 SOURCE_TYPE                                   CHAR(1)
f6u,u}y'V(Tm0 MAX_PRICE                                     NUMBERITPUB个人空间/ny(Djj'agl9G
 HIS_NAME                                      VARCHAR2(150)ITPUB个人空间NQ+}we8|*J5a
 HIS_ABBR                                      VARCHAR2(50)ITPUB个人空间6mn)k|k7e
 HIS_ID                                        CHAR(24)
:EM(Kx-sS0 DEALER_NAME                                   VARCHAR2(150)
~d0WS#N OXXs0 DEALER_ID                                     CHAR(24)ITPUB个人空间2?/oo1u'p^
 DEALER_ABBR                                   VARCHAR2(50)ITPUB个人空间S1o6HF0|S iK
 MIN_PRICE                                     NUMBERITPUB个人空间5JA _/~#x;q,U3G1z6R
 SENDER_NAME                                   VARCHAR2(150)ITPUB个人空间W~;k\ T
 SENDER_ID                                     CHAR(24)
_*Tf3U [0 SENDER_ABBR                                   VARCHAR2(150)ITPUB个人空间V`W$ZGN&l2_S
 CREATE_DATE                                   DATEITPUB个人空间,]R `4| sce:l
 SENDE_DATE                                    DATEITPUB个人空间g&]dy\pd+@?,P)~
 PRICE_RATE                                    NUMBER

不管怎么说,现在数据已经导入了,检查一下第31323条记录的情况:

SQL> SELECT * FROM (SELECT ROWNUM RN, A.* FROM SHGOV_ORDER_BAK A WHERE ROWNUM < 31324)ITPUB个人空间`B k fiBI.u`
  2  WHERE RN > 31322;

        RN
RRrQ:YTW1R0----------
E/BQI+ZL'l0TRADE_RATEITPUB个人空间4Rw Eui{3{M
-------------------------------------------------------------------------------ITPUB个人空间)j:LoG&m
ORDER_AMOUONT
]$?4{#ek/{b&}0-------------------------------------------------------------------------------
9x^P X&Bc0SEND_AMOUNTITPUB个人空间DOZ] D$HE:m
-------------------------------------------------------------------------------
_2|kUY/y`0RECEIVE_AMOUNT
9N-F ~d0x?$|o |0-------------------------------------------------------------------------------ITPUB个人空间9?^ xq,tnC
UNIT_PRICE
3?5F"? w ?!mY0-------------------------------------------------------------------------------
)r\/w%Ya'D4O z8\l0MAX_PRICEITPUB个人空间*q ^ T;EhR
-------------------------------------------------------------------------------ITPUB个人空间~;G:| U]H4ZU1c C
MIN_PRICE
p k,i*G.}Ny5j J0-------------------------------------------------------------------------------ITPUB个人空间Gjd(NO_3VT
PRICE_RATEITPUB个人空间:YX5\2f5WZ NQ
-------------------------------------------------------------------------------
)T#Ac/Fu0     31323
'nlR!^}*\#Cp0-53525351485153525352.535299ED98~m~m77311951
cN9S"F|Z:} M[0-311951531753535353535349535353535353535345000000000000000000000000000000000000ITPUB个人空间+Wp x/p`t)] t-o4q
-505353535353535252524948536449.535152534552
l{ ]/a$Ek&m C1U]0-000000000000000000000000000000000000
f@c:N6`0-.00000000000000195153175353535353535253535353535352505049ITPUB个人空间~[(iD}7PH
.00000000000000000000000000000033293311.,
S0Ad(u#s4e6n0-~ITPUB个人空间*^u$c9g`!j
-515550504648000000000000

果然,数值类型已经变为完全没有意义的乱码了,里面甚至还包括一些字母和标点符号。最后看看Oracleimp导入进去的数值类型是什么样子:

SQL> SELECT * FROM
$d I$^s.|$L.m'_*L0  2  (ITPUB个人空间+XGd B'h?
  3     SELECT ROWNUM RN, TRADE_RATE, ORDER_AMOUONT, SEND_AMOUNT, RECEIVE_AMOUNT,
)i g QU6ilAI3` C&M0  4             UNIT_PRICE, MAX_PRICE, MIN_PRICE, PRICE_RATEITPUB个人空间 E7i3Px8`M:T4d-t7W
  5     FROM SHGOV_ORDERITPUB个人空间cV%D2eOd^
  6     WHERE ROWNUM < 31324
-r T\({ `5b5T0  7  )ITPUB个人空间.V"z/?Gz g2TM{
  8  WHERE RN > 31322;

        RN TRADE_RATE ORDER_AMOUONT SEND_AMOUNT RECEIVE_AMOUNT UNIT_PRICE  MAX_PRICE  MIN_PRICE PRICE_RATEITPUB个人空间f4Ky q:C7P
---------- ---------- ------------- ----------- -------------- ---------- ---------- ---------- ----------
_SGN`xnuE5H\8h0     31323 -5.353E+19    -3.120E+77  -5.054E+29     -5.300E+35 -1.952E-15 3.3295E-31         -~ -5.156E+23

*** glibc detected *** sqlplus: free(): invalid next size (normal): 0x000000000cda7520 ***ITPUB个人空间i b~WII$_qI:\
======= Backtrace: =========
[5f,?'hF0J0/lib64/libc.so.6[0x3c0a66e8a0]
zE.Tv+@0/lib64/libc.so.6(cfree+0x8c)[0x3c0a671fbc]
qx[mho0sqlplus(safifre+0xc)[0x42c69c]ITPUB个人空间'^Bg!t*Wdq
sqlplus[0x423675]ITPUB个人空间:\1pD4c F(l!C
sqlplus[0x4155fa]ITPUB个人空间.I/P3lG `8Q [:]t
sqlplus[0x413a7b]
!f,G2m"bZ0@@x0sqlplus[0x419bba]ITPUB个人空间9m~8c:M*b
sqlplus[0x433596]
zh z,[ ]_0sqlplus[0x43253b]ITPUB个人空间p*O1uk)?U%`R0H
sqlplus[0x408433]
V2X6f9m5lC7cTe8t(x0sqlplus[0x40780e]
{*_(d3w,zm8H$v0/lib64/libc.so.6(__libc_start_main+0xf4)[0x3c0a61d8a4]ITPUB个人空间J`8~L9[^%u!T
sqlplus[0x40773a]
|8\#A6`)l5v e/q%D0======= Memory map: ========
i"v r'g+}i#_ C000400000-00494000 r-xp 00000000 08:02 10031306                           /opt/oracle/product/9.2/bin/sqlplus
P$z umH:y;t*IDJ:I]t P000594000-0059b000 rwxp 00094000 08:02 10031306                           /opt/oracle/product/9.2/bin/sqlplus
HW-n6XXV5Y?00cd25000-0ce8c000 rwxp 0cd25000 00:00 0
o`;\p&oj7e1}/H#^03c0a200000-3c0a21a000 r-xp 00000000 08:02 3365501                        /lib64/ld-2.5.soITPUB个人空间L wIwd
3c0a419000-3c0a41a000 r-xp 00019000 08:02 3365501                        /lib64/ld-2.5.so
]:\#{:O*eJb03c0a41a000-3c0a41b000 rwxp0001a000 08:02 3365501                        /lib64/ld-2.5.soITPUB个人空间I8qx;M9\u1G.jL
3c0a600000-3c0a744000 r-xp 00000000 08:02 3365502                        /lib64/libc-2.5.soITPUB个人空间4GcT|Z%Rh*b-^
3c0a744000-3c0a944000 ---p 00144000 08:02 3365502                        /lib64/libc-2.5.soITPUB个人空间K$LN:?`9S
3c0a944000-3c0a948000 r-xp 00144000 08:02 3365502                        /lib64/libc-2.5.soITPUB个人空间!J?#N6l(U7fGK
3c0a948000-3c0a949000 rwxp 00148000 08:02 3365502                        /lib64/libc-2.5.so
A,IK&z(D+l"K03c0a949000-3c0a94e000 rwxp3c0a949000 00:00 0ITPUB个人空间t*A&Gu2i+Q
3c0aa00000-3c0aa82000 r-xp 00000000 08:02 3365504                        /lib64/libm-2.5.soITPUB个人空间K@)Zx7k {
3c0aa82000-3c0ac81000 ---p 00082000 08:02 3365504                        /lib64/libm-2.5.so
+y@Di N~03c0ac81000-3c0ac82000 r-xp 00081000 08:02 3365504                        /lib64/libm-2.5.soITPUB个人空间xIz J`3q
3c0ac82000-3c0ac83000 rwxp 00082000 08:02 3365504                        /lib64/libm-2.5.soITPUB个人空间y uEq5@T@(U.Ub
3c0ae00000-3c0ae02000 r-xp 00000000 08:02 3365505                        /lib64/libdl-2.5.soITPUB个人空间z#YAQ1L1GH:~/{
3c0ae02000-3c0b002000 ---p 00002000 08:02 3365505                        /lib64/libdl-2.5.so
9y l1r(N.gqH03c0b002000-3c0b003000 r-xp 00002000 08:02 3365505                        /lib64/libdl-2.5.so
J_v*[*zu|o03c0b003000-3c0b004000 rwxp 00003000 08:02 3365505                        /lib64/libdl-2.5.so
s7d]8t1|? s9n1B H k03c0b200000-3c0b215000 r-xp 00000000 08:02 3365398                        /lib64/libpthread-2.5.so
E3vVp4j3P ub03c0b215000-3c0b414000 ---p 00015000 08:02 3365398                        /lib64/libpthread-2.5.so
#Xk;rr#hh&ktm03c0b414000-3c0b415000 r-xp 00014000 08:02 3365398                        /lib64/libpthread-2.5.so
/e2y`:Z)h{#\(D03c0b415000-3c0b416000 rwxp 00015000 08:02 3365398                        /lib64/libpthread-2.5.so
t4k-FlL,{+\A!t*J F03c0b416000-3c0b41a000 rwxp3c0b416000 00:00 0ITPUB个人空间 e^TTd6[ Cu
3c0ca00000-3c0ca0d000 r-xp 00000000 08:02 3365507                        /lib64/libgcc_s-4.1.1-20070105.so.1ITPUB个人空间*[z!n j0fP%~;P6V!n
3c0ca0d000-3c0cc0c000 ---p 0000d000 08:02 3365507                        /lib64/libgcc_s-4.1.1-20070105.so.1ITPUB个人空间 Ps$dfZ
3c0cc0c000-3c0cc0d000 rwxp0000c000 08:02 3365507                        /lib64/libgcc_s-4.1.1-20070105.so.1ITPUB个人空间lm5A7ik4_qtu
3c11a00000-3c11a14000 r-xp 00000000 08:02 3365523                        /lib64/libnsl-2.5.so
y5eo5es _WT-e03c11a14000-3c11c13000 ---p 00014000 08:02 3365523                        /lib64/libnsl-2.5.soITPUB个人空间V2nuE3`8X6b^2?
3c11c13000-3c11c14000 r-xp 00013000 08:02 3365523                        /lib64/libnsl-2.5.so
i3E-y$X6RX6v{+i'l03c11c14000-3c11c15000 rwxp 00014000 08:02 3365523                        /lib64/libnsl-2.5.soITPUB个人空间#y yu~-MT$x.~
3c11c15000-3c11c17000 rwxp3c11c15000 00:00 0ITPUB个人空间4C5s+q FJrw'N
2aaaaaaab000-2aaaaaaad000 rwxp 2aaaaaaab000 00:00 0
.q"oy&P H4s|02aaaaaaad000-2aaaab5fd000 r-xp 00000000 08:02 10162165                   /opt/oracle/product/9.2/lib/libclntsh.so.9.0
G8d&F2AW"z}02aaaab5fd000-2aaaab6fd000 ---p 00b50000 08:02 10162165                   /opt/oracle/product/9.2/lib/libclntsh.so.9.0
,W _&Q;y%GX8bL02aaaab6fd000-2aaaab75c000 rwxp 00b50000 08:02 10162165                   /opt/oracle/product/9.2/lib/libclntsh.so.9.0ITPUB个人空间|`6~.J'q5y%dXxx&|
2aaaab75c000-2aaaab76f000 rwxp 2aaaab75c000 00:00 0ITPUB个人空间;iui~,P#d4B$ji
2aaaab76f000-2aaaab771000 r-xp 00000000 08:02 10162044                   /opt/oracle/product/9.2/lib/libwtc9.so
4u\(o \X02aaaab771000-2aaaab870000 ---p 00002000 08:02 10162044                   /opt/oracle/product/9.2/lib/libwtc9.soITPUB个人空间(s7` HQ!M(c0wKb _c
2aaaab870000-2aaaab871000 rwxp 00001000 08:02 10162044                   /opt/oracle/product/9.2/lib/libwtc9.soITPUB个人空间5[+S@*N'y&^;N
2aaaab871000-2aaaab894000 rwxp 2aaaab871000 00:00 0ITPUB个人空间.zpga8SuUr
2aaaab895000-2aaaab8bf000 rwxp 2aaaab895000 00:00 0ITPUB个人空间L+Y^u#Y[#l0j(K
2aaaab8e2000-2aaaab8ec000 r-xp 00000000 08:02 3365244                    /lib64/libnss_files-2.5.soITPUB个人空间d&waW!^ |}'F
2aaaab8ec000-2aaaabaeb000 ---p0000a000 08:02 3365244                    /lib64/libnss_files-2.5.so
FH Gl-k_02aaaabaeb000-2aaaabaec000 r-xp 00009000 08:02 3365244                    /lib64/libnss_files-2.5.soITPUB个人空间&x$l(kn$?:WA5D
2aaaabaec000-2aaaabaed000 rwxp0000a000 08:02 3365244                    /lib64/libnss_files-2.5.soITPUB个人空间z3gV[a,l Wj-W*p
2aaaac000000-2aaaac021000 rwxp 2aaaac000000 00:00 0
qAVbH:yz&J[02aaaac021000-2aaab0000000 ---p 2aaaac021000 00:00 0
7lV:V'H8VF C!U/I07fffe2300000-7fffe2316000 rwxp 7fffe2300000 00:00 0                      [stack]
1yZ \L1x0@6B2n0ffffffffff600000-ffffffffffe00000 ---p 00000000 00:00 0                  [vdso]ITPUB个人空间7u7l?'\6~'S_ yn0J
Aborted

没想到,一个简单的查询居然导致sqlplus直接错误退出。

检查alert文件,没有发现对应错误信息的生成。看来这种逻辑错误造成的数据异常还是有很大危害性的,可能会直接造成应用程序的错误。

像上面这个错误似乎是由于错误数据导致sqlplus在调用free函数的时候出现了地址错误,从直接被Oracle强制结束。

 


TAG:

 

评分:0

我来说两句

显示全部

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

Open Toolbar