Oracleデータベースのselectに行のsha1ハッシュを作成する際に問題があります。私はMSSQLで次のようにしています。Oracleの行のsha1ハッシュを作成
SELECT *,HASHBYTES('SHA1',CAST(ID as varchar(10)+
TextEntry1+TextEntry2+CAST(Timestamp as varchar(10)) as Hash
FROM dbo.ExampleTable
WHERE ID = [foo]
しかし、私はOracleで作業するときに同様の機能を使用することはできません。 私のグーグルが私を連れて来た限り、私はdbms_crypto.hash_sh1がそれと何か関係があると推測していますが、まだ私の脳を包み込むことができませんでした...
感謝。
ありがとうございます。私はdbms_crypto.hash_sh1の値を定数の代わりに使用しなければなりませんでした。 SELECT sys.dbms_crypto.hash(utl_raw.cast_to_raw(col1)、3)FROM t; – PrometheusDrake
私はこれが11g R2のために正確だとは思わない。 'dbms_crypto.hash'には、' raw'、 'blob'、' clob'の3つのオーバーロードされたバージョンがあるようです。 'varchar2'の値は' utl_i18n.string_to_raw'または 'utl_raw.cast_to_raw'のどちらかで' raw'に明示的に変換されなければなりません。また、文字データに 'clobs'を使うこともできます。 – user272735
文字列データ型を持たない列がある場合はどうなりますか? – ca9163d9