我使用 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不被识别为有效标识符?我必须导入它吗?
这可能是权限问题。默认情况下不授予 DBMS_RANDOM 上的 EXECUTE 权限,因此您需要 DBA 用户授予您 EXECUTE 权限。
grant execute on dbms_random to << your_username >>;
Run Code Online (Sandbox Code Playgroud)
尽管安装是默认设置,但有可能未安装该软件包。同样,您需要 DBA 用户进行检查,如果需要,请运行安装脚本。