gpt4 book ai didi

oracle - PL/SQL 中有散列函数吗?

转载 作者:行者123 更新时间:2023-12-03 21:08:35 24 4
gpt4 key购买 nike

我正在寻找 PL/SQL 中的哈希函数,以获取 varchar 的哈希值。我在 Oracle 10 中找到了一个名为 dbms_crypto 的包,其中包含一个函数 dbms_crypto.hash 甚至其他包 dbms_sqlhash.getHash,但是在我调用它们的地方,我收到一条消息,就像它找不到它们一样......

有人知道我怎么称呼他们吗??有没有其他的包?

这是我的代码

DECLARE
l_textToHash VARCHAR2(19) := 'toto123';
l_ccn_raw RAW(128) := utl_raw.cast_to_raw(l_textToHash);
l_encrypted_raw RAW(2048);
BEGIN
dbms_output.put_line('CC: ' || l_ccn_raw);
l_encrypted_raw := dbms_crypto.hash(l_ccn_raw, 3);
dbms_output.put_line('SH1: ' || l_encrypted_raw);
END;
/

这是消息
Error starting at line 1 in command:
DECLARE
l_textToHash VARCHAR2(19) := 'toto123';
l_ccn_raw RAW(128) := utl_raw.cast_to_raw(l_textToHash);
l_encrypted_raw RAW(2048);
BEGIN
dbms_output.put_line('CC: ' || l_ccn_raw);
l_encrypted_raw := dbms_crypto.hash(l_ccn_raw, 3);
dbms_output.put_line('SH1: ' || l_encrypted_raw);
END;
Error report:
ORA-06550: line 7, column 22:
PLS-00201: identifier 'DBMS_CRYPTO' must be declared
ORA-06550: line 7, column 3:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:

谢谢!

最佳答案

根据您尝试生成哈希的原因,内置函数 ORA_HASH 可能就足够了,

SQL> select ora_hash( 'fuzzy bunny' ) from dual;

ORA_HASH('FUZZYBUNNY')
----------------------
2519249214

如果您需要加密安全的哈希函数,我不会尝试使用它。但是如果你只需要一个简单的哈希,这应该就足够了。

关于oracle - PL/SQL 中有散列函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5595774/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com