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

Posted

技术标签:

【中文标题】实现限制:\'FILE READONLY\' 不能直接访问远程包变量或游标【英文标题】:Implementation restriction:'FILE READONLY' Can not directly access remote package variable or cursor实现限制:'FILE READONLY' 不能直接访问远程包变量或游标 【发布时间】:2015-05-19 05:14:21 【问题描述】:

我正在尝试使用 form 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;

当我在Toad 9.0.1.8 中执行它们时,这段代码运行良好。在oracle form 6i 中使用它时,它显示错误,

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

【问题讨论】:

【参考方案1】:

终于摆脱了这个问题,但不是通过表格 6i。在后端创建了一个procedure,然后在forms 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\';

【讨论】:

以上是关于实现限制:'FILE READONLY' 不能直接访问远程包变量或游标的主要内容,如果未能解决你的问题,请参考以下文章

VS+Qt QUiLoader动态加载.ui文件

HTML笔记--- form表单;实现用户注册表单;下拉列表支持多选;file控件;readonly与disabled;maxlength

Change file readonly property File.SetAttribute and new FileInfo readonly property

Change file readonly property File.SetAttribute and new FileInfo readonly property

const 和 readonly 修饰符的用法

Resolved validation conflict with readonly