此语句返回 null 而不是 64 个随机字节:
select DBMS_CRYPTO.RANDOMBYTES(64) from dual;
是什么导致它返回null?数据库是在 Windows Server 2003 上运行的 Oracle 10.1.0.2.0,我想使用随机字节作为密码散列的盐。
编辑:这是 sqlplus 的输出:
Connected to:
Oracle Database 10g Release 10.1.0.2.0 - Production
SQL> select DBMS_CRYPTO.RANDOMBYTES(64) from dual;
DBMS_CRYPTO.RANDOMBYTES(64)
--------------------------------------------------------------------------------
SQL>
Edit2:切换到 Oracle 11 时,查询有效。我不知道为什么它不能在 Oracle 10 上运行,但决定不使用那个旧数据库。