Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

0

积分

0

好友

1

主题
1#
发表于 2013-1-17 14:36:00 | 查看: 3389| 回复: 2

执行以下语句的时候,结果如下:

select dump(17733,16) from dual
--------------------------------------------------------
Typ=2 Len=4: c3,2,4e,22

这里17733是number数据类型。

假设,我现在不知道17733这个值,有什么办法从Typ=2 Len=4: c3,2,4e,22 这个结果中逆推17733呢?


字符型按以下方式貌似可以推导出来。
select dump('L',16) from dual
-------------------------------------
Typ=96 Len=1: 4c

SQL> select to_number('4c', 'xxxxx' ) from dual;

TO_NUMBER('4C','XXXXX')
-----------------------
                     76

SQL> select chr(76) from dual;

CHR(76)
-------
L

MCL,请多指教!
2#
发表于 2013-1-17 14:48:44


SQL>
SQL> create table mac(t1 int);                                                                           

Table created.

SQL> insert into mac values(1);

1 row created.

SQL> insert into mac values(10);

1 row created.

SQL> insert into mac values(100);

1 row created.

SQL> insert into mac values(1200);

1 row created.




SQL> insert into mac values(0.1);

1 row created.

SQL> insert into mac values(0.01);

1 row created.

SQL> insert into mac values(0.001);

1 row created.

SQL> insert into mac values(0.0012);

1 row created.

SQL> commit;

Commit complete.




select t1,dump(t1),substr(dump(t1,16),13,6) HEX from mac;


  1* select t1,dump(t1),substr(dump(t1,16),13,6) HEX from mac
SQL> /

        T1 DUMP(T1)             HEX
---------- -------------------- ------------------------
         1 Typ=2 Len=2: 193,2    c1,2
        10 Typ=2 Len=2: 193,11   c1,b
       100 Typ=2 Len=2: 194,2    c2,2
      1200 Typ=2 Len=2: 194,13   c2,d
         0 Typ=2 Len=1: 128      80
         0 Typ=2 Len=1: 128      80
         0 Typ=2 Len=1: 128      80
         0 Typ=2 Len=1: 128      80

                 
SQL> select dump(123456.789,16) from dual;

DUMP(123456.789,16)
-----------------------------
Typ=2 Len=6: c3,d,23,39,4f,5b



0xc3=195(十进制)-193=2  ==》2后面100^2

oxd=13-1= 12 => 12 * 100^2=120000
0x23=35-1=34=> 34*100^1=3400
0x39= 57-1=56 * 100^0=56
0x4f=79-1=78 * 100^-1=0.78
0x5b=91-1=90*100^-2=0.009


以上加起来为          123456.789
                 

回复 只看该作者 道具 举报

3#
发表于 2013-1-17 17:25:41
参考DSI402e

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-12-26 15:39 , Processed in 0.045413 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569