Oracle Cloud中如何通过同一ESS作业生成多份BI Publisher报表
Oracle Cloud ESS双输出BI Publisher作业配置方法
核心逻辑
整个配置无需编写自定义PLSQL或外部脚本,完全依托Oracle Cloud ESS与BI Publisher的原生能力实现,核心思路是单一查询源复用计数结果,从机制上保证业务提取文件与统计说明文件的数值一致性,规避两次独立查询带来的数据偏差问题。
分步配置流程
- 搭建统一BI Publisher数据模型
- 将已完成的业务数据提取SELECT查询作为主数据集挂接在数据模型下
- 在同个数据模型内新增统计数据集,查询逻辑直接嵌套引用主数据集的完整SQL:
SELECT COUNT(1) AS TOTAL_RECORD_NUM FROM ( -- 此处完全粘贴已编写完成的业务数据提取SELECT逻辑,不做任何修改 ) - 可在数据模型的全局参数配置中,将统计得到的总记录数设为可传递参数,避免后续重复计算
- 配置双输出布局模板
- 在同个数据模型下关联两个独立的报表布局:
- 第一份布局:绑定主业务数据集的全部字段,设置输出格式为CSV/Excel,对应业务数据提取文件
- 第二份布局:仅绑定统计字段,设计简单的文本类内容(如“本次数据提取共导出{TOTAL_RECORD_NUM}条记录,导出时间为{当前系统时间}”),设置输出格式为TXT/PDF,对应结果说明文件
- 在同个数据模型下关联两个独立的报表布局:
- 绑定ESS作业的输出规则
- 到对应ESS作业的“输出管理”配置页,将两个BI Publisher布局依次加入输出列表,调整顺序为先生成业务数据文件、后生成统计说明文件
- 分别为两个文件配置统一的命名规则、文件权限,保证作业运行后两个输出都会挂载到作业运行结果的公开输出列表中
注意事项
- 禁止为两个输出文件分别编写独立的业务查询逻辑,否则作业运行期间如果底层数据发生变动,会出现业务文件实际行数和统计文件记录数不匹配的问题
- 测试运行时需要交叉校验两个文件的数值匹配度,确认生成顺序符合要求后再上线发布
内容的提问来源于stack exchange,提问作者Maria John
相关产品推荐
相关产品推荐

