将外部文件加载到oracle数据库中

时间:2014-08-06 12:54:24

标签: oracle oracle11g

我创建了下表。

create table emps( id varchar2(20), clobi clob);

尝试使用以下过程将bfile插入COLBI列:

create or replace procedure bfii is 
   bfil bfile; 
   clo clob; 
begin 
   insert into emps values('3',empty_clob() ) returning clobi into clo;
   bfil := bfilename('clobr', 'Man.ext'); 
   dbms_lob.fileopen(bfil); 
   dbms_lob.loadfromfile(clo,bfil, dbms_lob.getlength(bfil)); 
   dbms_lob.fileclose(bfil); 
end; 

但是我在运行时收到错误消息而不是编译。

Error at line 2
ORA-22285: non-existent directory or file for FILEOPEN operation
ORA-06512: at "SYS.DBMS_LOB", line 805
ORA-06512: at "SYS.HIMA", line 12
ORA-06512: at line 2

有人可以帮我解决这个问题吗。

2 个答案:

答案 0 :(得分:1)

默认情况下,目录名称与其他对象一样,创建为大写,除非引用了名称。当您将目录称为字符串时,它需要匹配数据字典中的大小写(例如all_directories)。所以你需要改为:

   bfil := bfilename('CLOBR', 'Man.ext'); 

...即使您使用create directory clobr ...

创建了它

答案 1 :(得分:0)

尝试create directory存储Man.ext文件的位置