Oracle 实施限制:';文件只读';无法直接访问远程包变量或游标

Oracle 实施限制:';文件只读';无法直接访问远程包变量或游标,oracle,plsql,plsqldeveloper,oracleforms,Oracle,Plsql,Plsqldeveloper,Oracleforms,我正在尝试使用表单6i将pdf文件插入oracle数据库。这是我写的代码 DECLARE l_blob BLOB; l_bfile BFILE := BFILENAME ('D:\pdf\', 'a.pdf'); begin insert into demo values (1, EMPTY_BLOB()) returning theblob into l_blob; dbms_lob.fileopen (l_bfile) dbms_lob.loadfromfile (l_blob, l_bf

我正在尝试使用
表单6i
将pdf文件插入oracle数据库。这是我写的代码

DECLARE
l_blob  BLOB;
l_bfile BFILE := BFILENAME ('D:\pdf\', 'a.pdf');
begin
insert into demo values (1, EMPTY_BLOB())
returning theblob into l_blob;
dbms_lob.fileopen (l_bfile)
dbms_lob.loadfromfile (l_blob, l_bfile, dbms_lob.getlength (l_bfile));
dbms_lob.fileclose (l_bfile);
END;
当我在
toad9.0.1.8
中执行它们时,该代码运行良好。在oracle form 6i中使用此选项时,会显示错误

实现限制:'FILE READONLY'不能直接访问远程包变量或游标


最终解决了这个问题,但不是通过表格6i。在后端创建了一个
过程
,并在
表单6i中调用了它!以下是将我的pdf文件保存到BLOB列的过程

create or replace procedure save_blob
as
  l_blob  BLOB;
  l_bfile BFILE := BFILENAME ('MY_PDF', 'a.pdf');
begin
  insert into demo values (4, EMPTY_BLOB())
  returning theblob into l_blob;
  dbms_lob.fileopen (l_bfile);
  dbms_lob.loadfromfile (l_blob, l_bfile, dbms_lob.getlength (l_bfile));
  dbms_lob.fileclose (l_bfile);
 COMMIT;
end;
“MY_PDF”是由命令创建的目录

   CREATE OR REPLACE DIRECTORY my_pdf AS 'D:\pdf\';