在 Oracle APEX 中上传和解析文件

Upload and parse file in Oracle APEX

我正在尝试寻找在 Oracle APEX(当前版本 20.1)中上传、解析和处理文本文件的最佳方式。业务案例:我必须上传文本文件,第一行将保存到 table A。 其余行包含一些记录(列用竖线分隔)应该被验证。之后正确的记录应该保存到 table B 或者如果有一些错误应该保存到 table C (错误日志)。 我尝试使用数据加载向导做一些事情,但它不符合我的要求。

现在我在页面中添加了一个 "File browse..." 项目,页面提交后我可以在 blob_content 中的 APEX_APPLICATION_TEMP_FILES 中找到这个文件。

除了使用 APEX_APPLICATION_TEMP_FILES 中的 blob_content 之外,还有其他选项可以使用该文件吗?我发现很难处理数据类型。

文本文件看起来像这样:

2020-06-05 info: header line 
2020-06-05|columnAValue|columnBValue|
2020-06-05|columnAValue||columnCValue
2020-06-05|columnAValue|columnBValue|columnCValue

查看 APEX_DATA_PARSER.PARSE table 函数。它将 CSV 文件和 returns 值解析为行和列。这篇博文中对此进行了更详细的描述: https://blogs.oracle.com/apex/super-easy-csv-xlsx-json-or-xml-parsing-about-the-apex_data_parser-package

该函数仅使用文件扩展名来区分带分隔符的 XLSX、XML 或 JSON 文件。所以只需传入一个静态文件名,如"file.csv"。应该够了。

只需传递 "file.csv"(字面意思)作为 p_file_name 参数。 APEX_DATA_PARSER 不关心 "real" 文件名....