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

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

17

积分

0

好友

0

主题
1#
发表于 2012-8-7 15:29:27 | 查看: 3642| 回复: 1
hello

请问如何还原dump后格式的原数据?
例如

-----numbe
SQL> select dump(200,16) from dual;

DUMP(200,16)
-----------------
Typ=2 Len=2: c2,3

如何根据上面数据 c2,3 还原成十进制原始数据

-----date
SQL> select sysdate,dump(sysdate,16) from dual ;

SYSDATE     DUMP(SYSDATE,16)
----------- --------------------------------------------------------------------------------
2012/8/7 下午 Typ=13 Len=8: 7,dc,8,7,f,19,35,0


如何根据上面数据 7,dc,8,7,f,19,35,0 还原成当时的时间

-----varchar
SQL> select dump('unora',16) from dual ;

DUMP('UNORA',16)
----------------------------
Typ=96 Len=5: 75,6e,6f,72,61

如何根据上面数据 7,dc,8,7,f,19,35,0 还原为原字符串


不使用dbms_stats.convert_raw_value,而是通过进制转换

谢谢
2#
发表于 2012-8-7 22:34:45
SQL> select dump('unora',16) from dual ;

DUMP('UNORA',16)
----------------------------
Typ=96 Len=5: 75,6e,6f,72,61

elect sysdate,dump(sysdate,16) from dual ;

SYSDATE     DUMP(SYSDATE,16)
----------- --------------------------------------------------------------------------------
2012/8/7 下午 Typ=13 Len=8: 7,dc,8,7,f,19,35,0



对于char 和date类型 其dump值本质上就是 其16进制的编码,

对于 number类型 oracle使用独特的编码方式

目前没有现成的 dump函数的 反函数 , 本质上这么做也没有意义, 你可以直接用bbed 来翻转block中的 number或 char

回复 只看该作者 道具 举报

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

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

GMT+8, 2024-12-25 15:12 , Processed in 0.047466 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

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