还原ORACLE DUMP 的值

还原DUMP出来的数字
SQL> select dump(2000,16) from dual;

DUMP(2000,16)
------------------
Typ=2 Len=2: c2,15


SQL> declare n number;
  2  begin
  3   dbms_stats.convert_raw_value('c215',n);
  4  dbms_output.put_line(n);
  5  end;
  6  /
2000


declare n number;
     begin
     dbms_stats.convert_raw_value('c215',n);
     dbms_output.put_line(n);
     end;
  /
还原DUMP的字符串

SQL> select dump('robinson',16) from dual;

DUMP('ROBINSON',16)
-------------------------------------
Typ=96 Len=8: 72,6f,62,69,6e,73,6f,6e

SQL> declare n varchar2(2000);
  2       begin
  3       dbms_stats.convert_raw_value('726f62696e736f6e',n);
  4       dbms_output.put_line(n);
  5       end;
  6     /
robinson

SQL> select dump('robinson') from dual;

DUMP('ROBINSON')
--------------------------------------------
Typ=96 Len=8: 114,111,98,105,110,115,111,110

其实这个时候DUMP出来的是以10进制显示的,也就是说114相对于72,也就是r,后面的字幕同样

SQL> select to_char(114,'xxx') from dual;

TO_C
----
  72

SQL> declare n varchar2(2000);
  2       begin
  3       dbms_stats.convert_raw_value('72',n);
  4       dbms_output.put_line(n);
  5       end;
  6     /

posted @ 2014-03-20 01:49  princessd8251  阅读(786)  评论(0编辑  收藏  举报