升级到 APEX 5.1 后无法从 Oracle APEX 数据加载向导获取 blob

Cannot grab blob from Oracle APEX Data Load Wizard after upgrade to APEX 5.1

我正在使用 Oracle APEX 根据数据加载定义为我们的用户提供 CSV 文件上传功能。除了传统的映射数据之外,我还从视图 wwv_flow_files 中抓取了 BLOB 列并将其保存到另一个 table,因此用户始终能够在稍后重新下载他们上传的文件。

现在我们的测试环境已升级到 APEX 5.1,此选项不再有效。相应文件上传的视图wwv_flow_files 中没有条目。视图 apex_application_files 也不包含一个。应用程序兼容模式设置没有帮助。

还有其他方法可以获取 BLOB 吗?

安装的APEX版本是5.1.2.00.09。 Oracle数据库版本为12.1.0.2.0企业版。

自 APEX 5.0 起,文件上传功能已从使用 WWV_FLOW_FILES table 更改为 APEX_APPLICATION_TEMP_FILES。新的 table 有一个额外的属性 "Purge at",其值为 "End of request""End of session"。因此开发人员不必再关心清理 WWV_FLOW_FILES table 了。

但是,数据加载并没有在 APEX 5.0 中使用该新功能,而是随 APEX 5.1 一起移动到那里。这就解释了为什么您再也看不到 WWV_FLOW_FILES table 中的文件了。

保留上传文件的最佳方法是在 "Data Load Source" 页面上放置一个 custom PL/SQL process - "copy_blob",在 "Parse Uploaded Data" 过程之前。该过程中的代码将 BLOB 从 APEX_APPLICATION_TEMP_FILES(!) 复制到您自己的 table。