oracle – PLSQL中是否有散列函数?

oracle – PLSQL中是否有散列函数?,第1张

概述我在PL / SQL中寻找一个哈希函数来获取一个varchar的哈希值.我在Oracle 10中发现一个名为dbms_crypto的包,其中包含一个函数dbms_crypto.hash,甚至其他包dbms_sqlhash.getHash,但是在我打电话给他们的时候,我有一个消息,因为它找不到它们… 有人知道我怎么称呼他们?还有其他包装吗? 这是我的代码 DECLARE l_textToHash 我在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 declaredORA-06550: line 7,column 3:PL/sql: Statement ignored06550. 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.

总结

以上是内存溢出为你收集整理的oracle – PL / SQL中是否有散列函数?全部内容,希望文章能够帮你解决oracle – PL / SQL中是否有散列函数?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1167565.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存