2012-03-14 8 views
-1

オーストリアのコマーシャル・オプトアウト・リストは、それぞれ20バイトのsha-1ハッシュ値を持つ生のバイナリ・ファイルとして提供されています。 PL/SQLを使用してVARCHAR2を読み取ってVARCHAR2に変換する方法。PL/SQLでオーストリア・ロビンソンのリストを読む方法

+3

バイナリファイル形式の詳細は、正確に説明できますか?文字データをバイナリファイル形式で表現するには、数十億もの方法があります。形式についてより具体的にできる場合は、おそらくお手伝いできます。 –

答えて

0

私の同僚が答えを見つけました: 追加のメールアドレスは、変換の検証用です。 がテストハッシュファイルは公式オーストリアのウェブサイトから取得されます:両方の出力が同じであればhttp://www.rtr.at/de/tk/nutzenecg

DECLARE 
    vInHandle utl_file.file_type; 
    V1 RAW(32767); 
    vEmail VARCHAR2(200) := '[email protected]'; 
BEGIN 
    --open file 
    vInHandle := utl_file.fopen('RECEIVE', 'testliste.hash', 'R'); 
    --read raw 20 bytes 
    UTL_FILE.GET_RAW(vInHandle,V1,20); 
    --convert raw 20 bytes to HEX 
    dbms_output.put_line('Compiled hash:'||LOWER (TO_CHAR (RAWTOHEX (v1)))); 

    --convert email to hash 
    dbms_output.put_line('Email hash: '||LOWER (sys.dbms_crypto.HASH(utl_raw.cast_to_raw(vEmail),sys.dbms_crypto.hash_sh1))); 



END fopen; 
/

、すべてが正常に動作しています。 ORACLEユーザーは、dbms_cryptoパッケージを実行するための権限を持っている必要があります。

-1

バイナリファイル形式の保存と読み取りには、バイナリラージオブジェクト/ラージオブジェクト(blob)を使用できます。

関連する問題