1.问题描述:
Oracle EBS 使用XML/EXCEL模板进行报表开发,遇到大数据量时,生成的EXCEL文件通常有几百M,打开十分缓慢。
2.解决方案:
通过ORACLE标准excel文件生成工具生成EXCEL文件,替换标准请求运行产生的文件。(该方案同样适用于提升报表开发速度)
三个程序包
cux_wip_opt_pkg --调用范例
cux_excel_report_pkg --封装文件
cux_xlsx_maker_pkg --改写标准excel包SMT_XLSX_MAKER_PKG,直接修改包名
CREATE OR REPLACE PACKAGE cux_wip_opt_pkg
AS
-- Main procedure of this package. It is run as a concurrent program.
PROCEDURE PRODUCING (errbuf OUT NOCOPY VARCHAR2, retcode OUT NOCOPY VARCHAR2, p_item IN VARCHAR2);
END CUX_WIP_OPT_PKG;
CREATE OR REPLACE PACKAGE BODY cux_wip_opt_pkg
AS
PROCEDURE producing (errbuf OUT NOCOPY VARCHAR2, retcode OUT NOCOPY VARCHAR2, p_item IN VARCHAR2)
IS
l_sql VARCHAR2 (32767);
l_pre_filename VARCHAR2 (30) := 'CUX_WIP_OPT_PRODUCING';
BEGIN
l_sql := cux_excel_report_pkg.space_trim (
p_sql => 'select INVENTORY_ITEM_ID "物料ID", ORGANIZATION_ID "组织ID", LANGUAGE, SOURCE_LANG, DESCRIPTION from mtl_system_items_TL msi WHERE ROWNUM < 80000'
);
cux_excel_report_pkg