oracle – PL / SQL中是否有散列函数?
发布时间:2021-05-23 09:00:29 所属栏目:站长百科 来源:网络整理
导读:我在PL / SQL中寻找一个哈希函数来获取一个varchar的哈希值.我在Oracle 10中发现一个名为dbms_crypto的包,其中包含一个函数dbms_crypto.hash,甚至其他包dbms_sqlhash.getHash,但是在我打电话给他们的时候,我有一个消息,因为它找不到它们… 有人知道我怎么称
我在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: 谢谢! 确保您具有与您连接的用户授予的适当权限.与您的DBA通信以在SYS.DBMS_CRYPTO包上添加执行权限.Oracle提供了一个很好的guide,使用oracle数据库处理哈希和加密数据. 如果您是旧版本的数据库不支持DBMS_CRYPTO,您还可以尝试DBMS_OBFUSCATION_TOOLKIT. 在Oracle 12c中,您可以使用功能STANDARD_HASH. (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |