Oracle 10.2.0.4 , /data/run 是DB Server上的一个路径, 在远端PC上通过sqlplus 或Toad连接, 测试blob的操作 , 提示 ORA-22285: 对不存在的目录或文件进行 FILEOPEN 操作 , 是咋回事呢 ?
create directory utllobdir as '/data/run' ;
sys 用户登入,将权限赋予dfms用户
grant read on directory utllobdir to dfms ;
--insert BLOB
declare
a_blob BLOB;
bfile_name BFILE := BFILENAME('ULTLOBDIR','ntp');
begin
insert into blobtest values (empty_blob())
returning col1 into a_blob;
dbms_lob.fileopen(bfile_name);
dbms_lob.loadfromfile(a_blob, bfile_name, dbms_lob.getlength(bfile_name));
dbms_lob.fileclose(bfile_name);
commit;
end;
报错:
ORA-22285: 对不存在的目录或文件进行 FILEOPEN 操作
ORA-06512: 在 "SYS.DBMS_LOB", line 523
ORA-06512: 在 line 8
lhtestdb01$ls -alh
total 20K
drwxr-xr-x 2 oracle dba 4.0K Jul 23 2009 .
drwxrwxr-x 7 oracle dba 4.0K Jun 10 2010 ..
-rw-r--r-- 1 oracle dba 42 Jul 23 2009 ntp
lhtestdb01$
create directory utllobdir as '/data/run' ;
sys 用户登入,将权限赋予dfms用户
grant read on directory utllobdir to dfms ;
--insert BLOB
declare
a_blob BLOB;
bfile_name BFILE := BFILENAME('ULTLOBDIR','ntp');
begin
insert into blobtest values (empty_blob())
returning col1 into a_blob;
dbms_lob.fileopen(bfile_name);
dbms_lob.loadfromfile(a_blob, bfile_name, dbms_lob.getlength(bfile_name));
dbms_lob.fileclose(bfile_name);
commit;
end;
报错:
ORA-22285: 对不存在的目录或文件进行 FILEOPEN 操作
ORA-06512: 在 "SYS.DBMS_LOB", line 523
ORA-06512: 在 line 8
lhtestdb01$ls -alh
total 20K
drwxr-xr-x 2 oracle dba 4.0K Jul 23 2009 .
drwxrwxr-x 7 oracle dba 4.0K Jun 10 2010 ..
-rw-r--r-- 1 oracle dba 42 Jul 23 2009 ntp
lhtestdb01$
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-689209/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/35489/viewspace-689209/