はじめに
この記事では、Oracleデータベース内に格納したテキストデータを16進数のバイナリで出力する方法を紹介します。
Oracleデータベースを使っていてデータベースの中に格納したテキストデータを16進数のバイナリ表示で確認したい場合、dump関数というのが使えます。
基礎からのOracle (DVD付) (プログラマの種シリーズ)
posted with amazlet at 13.03.16
西沢 夢路
ソフトバンククリエイティブ
売り上げランキング: 74,933
ソフトバンククリエイティブ
売り上げランキング: 74,933
データベースの中身をバイナリ形式で出力する方法
以下のようなテーブルがあった場合、名前とふりがなのカラムをバイナリで出力してみます。
dump関数の引数に列名と1016というパラメタを指定します。1016は、16進数+文字コードの表示という意味になります。
select ID, dump(NAME, 1016), dump(FURIGANA, 1016) from table01;
以下は、その実行結果です。
SQL>INSERT INTO "HOGE"."TABLE01" (ID, NAME, FURIGANA) VALUES ('1', '山田 太郎', 'やまだ たろう'); SQL> select ID, dump(NAME, 1016), dump(FURIGANA, 1016) from table01; 1 Typ=1 Len=15 CharacterSet=AL32UTF8: e5,b1,b1,e7,94,b0,e3,80,80,e5,a4,aa,e9,83,8e Typ=1 Len=21 CharacterSet=AL32UTF8: e3,82,84,e3,81,be,e3,81,a0,e3,80,80,e3,81,9f ,e3,82,8d,e3,81,86
16進数で表示されましたね。
UTF-8対応のバイナリエディタで確認する
今度は、得られた16進数をUTF-8対応のバイナリエディタで確認してみます。BZというバイナリエディタであれば、UTF-8に対応しています。