无法使用DBMS_RANDOM函数

3

我使用Oracle Database 11g,我有一段相当简单的代码:

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

当我尝试运行时,它会出现错误提示:
identifier 'DBMS_RANDOM' must be declared

为什么dbms_random无法识别为有效标识符?我需要导入它吗?

3
应该使用 dbms_random,而非 dmbs_random。如果没有使用权限,你需要向数据库管理员申请授权。 - Florin Ghita
1
正如@FlorinGhita所说。如果您有sys密码,这是授予权限的方法(以sys身份执行):GRANT EXECUTE ON SYS.DBMS_RANDOM TO <在此处输入您的用户名>; - Peter
@FlorinGhita 抱歉,那是一个打字错误。我已经编辑了问题。但问题仍然存在。 - Əlişiram
@FlorinGhita 感谢您的快速帮助。正如您所提到的,这是一个特权问题。 - Əlişiram
1个回答

7

可能是一个权限问题。默认情况下,DBMS_RANDOM上没有授予EXECUTE权限,因此您需要一个具有DBA用户的人授予您EXECUTE特权。

grant execute on dbms_random to << your_username >>;

有一定可能该软件包未被安装,尽管默认情况下已经进行了安装。您需要一个DBA用户去检查,必要时运行安装脚本。


1
我没有使用dbms_random的权限。一旦获得了权限,我就可以成功运行代码。 - Əlişiram

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接