DECLARE key_raw VARCHAR2(64) := '618272'; key_val RAW(64); BEGIN key_val := UTL_RAW.CAST_TO_RAW(key_raw); DBMS_CRYPTO.DES3KEYVERIFY(key_val); EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('Invalid key: ' || key_raw); END; 出现了 DBMS_CRYPTO.DES3KEYVERIFY(key_val); * ERROR at line 6: ORA-06550: line 6, column 15: PLS-00302: component 'DES3KEYVERIFY' must be declared ORA-06550: line 6, column 3: PL/SQL: Statement ignored
时间: 2023-12-03 09:46:10 浏览: 130
通过ORACLE的UTL_HTTP工具包发送包含POST参数的请求
5星 · 资源好评率100%
这个错误可能是因为你的数据库版本不支持 `DBMS_CRYPTO.DES3KEYVERIFY` 这个函数。请确保你使用的是 Oracle Database 10g Release 2 或更高版本,并且已经开启了 `DBMS_CRYPTO` 包。你可以使用以下语句检查是否已经开启:
```
SELECT *
FROM dba_registry
WHERE comp_id = 'AES'
OR comp_id = 'ORA_CRYPTO'
ORDER BY comp_name;
```
如果没有显示 `ORA_CRYPTO`,则需要手动开启:
```
ALTER SYSTEM SET CRYPTO_LIBRARY_PATH='<full_path_to_library>' SCOPE=SPFILE;
```
其中 `<full_path_to_library>` 是指 Oracle 安装目录下的 `oraencr11.dll` 文件所在的完整路径。然后重启数据库即可。
阅读全文