SQL Oracle standard_hash 函数的服务器等效项
SQL Server equivalent of Oracle standard_hash function
我正在将一个数据库从 Oracle 移动到 SQL 服务器,但我不知道如何在 SQL 服务器中创建它:
"MY_HASH" RAW(32) GENERATED ALWAYS AS (STANDARD_HASH("SSN"||'|'||TO_CHAR("DATE_OF_BIRTH",'DD-MON-RR'),'SHA256')) VIRTUAL ,
感谢您的帮助。
似乎在 SQL 服务器中你会使用 hashbytes
function passing option 'SHA2_256' to generate the same value as Oracle's standard_hash
和 'SHA256':
SQL 服务器 2019 (DBFiddle):
select hashbytes('SHA2_256','Text')
甲骨文 18c(DBFiddle):
select standard_hash('Text', 'SHA256') from dual;
两者都return
0x71988C4D8E0803BA4519F0B2864C1331C14A1890BF8694E251379177BFEDB5C3
这是Oracle中的raw(32)
值和SQL服务器中的binary(32)
(我认为),而不是字符串,因此可能会根据客户端工具的不同显示不同。
我正在将一个数据库从 Oracle 移动到 SQL 服务器,但我不知道如何在 SQL 服务器中创建它:
"MY_HASH" RAW(32) GENERATED ALWAYS AS (STANDARD_HASH("SSN"||'|'||TO_CHAR("DATE_OF_BIRTH",'DD-MON-RR'),'SHA256')) VIRTUAL ,
感谢您的帮助。
似乎在 SQL 服务器中你会使用 hashbytes
function passing option 'SHA2_256' to generate the same value as Oracle's standard_hash
和 'SHA256':
SQL 服务器 2019 (DBFiddle):
select hashbytes('SHA2_256','Text')
甲骨文 18c(DBFiddle):
select standard_hash('Text', 'SHA256') from dual;
两者都return
0x71988C4D8E0803BA4519F0B2864C1331C14A1890BF8694E251379177BFEDB5C3
这是Oracle中的raw(32)
值和SQL服务器中的binary(32)
(我认为),而不是字符串,因此可能会根据客户端工具的不同显示不同。