在 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" 文件名....
我正在尝试寻找在 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" 文件名....