【发布时间】:2025-12-02 17:10:02
【问题描述】:
我正在尝试在 PL/SQL 中使用 STANDARD_HASH Oracle (12c) 函数,但似乎不可用:
SQL> exec dbms_output.put_line(STANDARD_HASH('test'));
BEGIN dbms_output.put_line(STANDARD_HASH('test')); END;
*
ERROR at line 1:
ORA-06550: line 1, column 28:
PLS-00201: identifier 'STANDARD_HASH' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
来自 sql 的工作正常:
SQL> select STANDARD_HASH('test') from dual;
STANDARD_HASH('TEST')
----------------------------------------
A94A8FE5CCB19BA61C4C0873D391E987982FBBD3
为什么?在 PLSQL 中实现 STANDARD_HASH 的最佳方式是什么?
问候
【问题讨论】:
-
并非所有 SQL 函数都在 PL/SQL 中可用;不是on this list,但也许应该是。可能与 LNNVL 属于同一类别。
-
这是比使用自定义包装函数更正确的答案,这是对*的重新发明。绝对必须将这个变体标记为正确答案。