不能使用 DBMS_RANDOM 函数

Əli*_*ram 2 oracle oracle11g

我使用 Oracle 数据库 11g,我有一个相当简单的代码:

set serveroutput on format wrapped;
declare
result_ clob;
begin
result_ := dbms_random.string('P', 10);
dbms_output.put_line(result_);
end;
Run Code Online (Sandbox Code Playgroud)

当我尝试运行它给我一个错误说:

identifier 'DBMS_RANDOM' must be declared
Run Code Online (Sandbox Code Playgroud)

为什么dbms_random不被识别为有效标识符?我必须导入它吗?

APC*_*APC 6

这可能是权限问题。默认情况下不授予 DBMS_RANDOM 上的 EXECUTE 权限,因此您需要 DBA 用户授予您 EXECUTE 权限。

grant execute on dbms_random to << your_username >>;
Run Code Online (Sandbox Code Playgroud)

尽管安装是默认设置,但有可能未安装该软件包。同样,您需要 DBA 用户进行检查,如果需要,请运行安装脚本。