oracle – 间歇式ORA-22288错误 – 命令长度不正确

我有一个Web应用程序的间歇性问题,通常必须打开位于数据库服务器上的文件作为常规操作的一部分.在绝大多数时间内,这种功能没有问题,但是,在看似随机的时间,相应的请求开始返回HTTP 400错误.弹跳apache服务器解决了这个问题一段时间,但它总是在一天或最多一周内返回.

我添加了一些日志记录到相关的pl / sql代码(不,不要跑走!回来!),我在下面列出了参考:

declare
  bl_blob blob;
  bf_file bfile := bfilename(<directory that totally exists>, <file that totally exists>);
begin
  dbms_lob.createTemporary(bl_blob, true);
  dbms_lob.open(bf_file, dbms_lob.lob_readonly);
  dbms_lob.open(bl_blob, dbms_lob.lob_readwrite);
  dbms_lob.loadfromfile(bl_blob, bf_file, dbms_lob.getLength(bf_file));
  dbms_lob.close(bf_file);
  return bl_blob;
end;

原来400个错误对应于以下ORA-22288错误:

file or LOB operation FILEOPEN failed
The program issued a command but the command length is incorrect

我的问题是,为什么这个操作突然而且反复地开始错误地出现在哪里以前可以打开同一个文件没有问题?底层文件永远不会更改,只能以只读权限以编程方式打开.

我迄今为止所做的所有论坛挖掘大部分已经产生了大量的“关闭和关闭”解决方案,这是…是的.

任何帮助是极大的赞赏.

最佳答案
而不是使用dbms_lob.getLength(bf_file)来加载数量,请尝试使用DBMS_LOB.LOBMAXSIZE.这可能有帮助.

转载注明原文:oracle – 间歇式ORA-22288错误 – 命令长度不正确 - 代码日志