2011年11月27日日曜日

[oracle]DBの値をバイナリでダンプする方法

DUMP関数を使用して、
任意の値をバイナリでダンプすることができる。

構文

dump(任意の値(列名), フォーマット, スタートポジション, 長さ)
  • 任意の値(列名)
  • 文字列をリテラルで指定するか、カラム名を指定する。
  • フォーマット(任意)
  • 以下の値を指定する。
    8→8進数でダンプ
    10→10進数でダンプ
    16→16進数でダンプ
    上記の値に1000をプラスすると、ダンプ時にキャラクタセットを表示してくれる。
  • スタートポジション(任意)
  • ダンプの開始位置
  • 長さ(任意)
  • ダンプする長さ

使用例


普通にSQLを実行した場合
SQL> select col1 from test;

COL1
----------
12345

16進数でダンプした場合
SQL> select dump(col1, 16) from test;

DUMP(COL1,16)
--------------------------------------------------------------------------------
Typ=1 Len=5: 31,32,33,34,35

キャラクタセットを表示しつつダンプした場合

SQL> select dump(col1, 1016) from test;

DUMP(COL1,1016)
--------------------------------------------------------------------------------
Typ=1 Len=5 CharacterSet=AL32UTF8: 31,32,33,34,35