无法使用默认的Oracle 11G包utl_file

时间:2015-01-16 09:59:28

标签: plsql oracle11g packages

我正在使用PLSQL Developer客户端访问我的11G Oracle数据库。我的理解是these是此版本附带的默认包。但是,如果我尝试声明一个utl_file.file_type变量,我会收到以下错误:

  

PLS-00201:标识符' UTL_FILE'必须声明

我的节目:

declare 
  l utl_file.file_type;
begin
  NULL;
end;

我试图声明,例如,DBMS_LOB.BFILE,并且它成功编译,这证明在我的块中导入了一些其他包。 Aren自动导入所有Oracle默认包吗?

1 个答案:

答案 0 :(得分:0)

我的假设是,如果它是您的数据库,那么您已经获得了用户SYS的通行证。如果是,则应检查是否已安装包utl_file。您可以通过SYS连接并执行此语句

SELECT * FROM dba_objects WHERE object_name = 'UTL_FILE'

您应该看看该包是否存在。你也应该看到对象类型' SYNONYM'与所有者' PUBLIC'。如果包中存在包,但没有它的同义词,则可以使用此语句

创建它
CREATE PUBLIC SYNONYM OF UTL_FILE FOR SYS.UTL_FILE

如果没有这样的软件包 - 您应该通过执行位于

的脚本来安装它

{ORACLE_HOME}/rdbms/admin/utlfile.sql