我在Oracle數據庫的select中對某行做sha1哈希有問題。在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工作時使用的:我已經在MSSQL如下做到了。 至於我的谷歌搜索帶來了我,我猜dbms_crypto.hash_sh1與它有關,但我還沒有能夠包圍我的大腦呢...
任何指針會很大讚賞。
感謝您的幫助。我必須使用值dbms_crypto.hash_sh1代表(整數3)而不是常量,以便在執行常規SQL時使其工作。 SELECT sys.dbms_crypto.hash(utl_raw.cast_to_raw(col1),3)FROM t; – PrometheusDrake 2009-11-18 08:01:48
我不認爲這對於11g R2是完全正確的。 'dbms_crypto.hash'似乎有3個重載的'raw','blob'和'clob'版本。 'varchar2'值必須用'utl_i18n.string_to_raw'或'utl_raw.cast_to_raw'顯式轉換爲'raw'。或者使用'clobs'作爲角色數據。 – user272735 2015-01-12 12:53:58
如果有一些列沒有字符串數據類型,該怎麼辦? – ca9163d9 2017-10-04 18:36:08