我正在使用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默认包吗?
答案 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