我在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