我使用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 无法识别为有效标识符?我必须导入吗?
答案 0 :(得分:3)
这可能是权限问题。 EXECUTE on DBMS_RANDOM is not granted by default,因此您需要一个DBA用户才能授予您EXECUTE特权。
grant execute on dbms_random to << your_username >>;
尽管默认情况下是安装程序,但外部没有机会安装该程序包。同样,您需要DBA用户进行检查,并且是否需要运行安装脚本。