owa_util.mime_header问题 – 尝试从查询中提取Excel文件

假设生成一个Excel文件,我的一个程序有问题,程序是这样的:

CREATE OR REPLACE PROCEDURE GENERATE_REPORT_P(P_CONTRACT_NUM IN VARCHAR2 DEFAULT NULL, P_CUSTOMER_NAME IN VARCHAR2 DEFAULT NULL, P_CUSTOMER_NUM IN VARCHAR2 DEFAULT NULL, P_UPDATE_DATE_START IN DATE DEFAULT NULL, P_UPDATE_DATE_END IN DATE DEFAULT NULL, P_ORDER_NUM IN VARCHAR2 DEFAULT NULL) IS vRecords BOOLEAN := FALSE; BEGIN FOR i IN (SELECT a.contract_num, d.customer_abt_number, d.customer_name, c.doms_order_num order_num, e.service_tag asset, e.sku, e.field, e.previous_value, e.new_value, e.update_date, --to_char(i.update_date, 'DD-MON-RRRR HH12:MI:SS') e.updated_by FROM contracts a, order_extension b, orders c, customers d, abt_cisi_log e WHERE a.id = b.contract_id AND c.id = b.order_id AND d.id = a.customer_id AND c.id = e.order_id --parameters AND a.contract_num LIKE NVL(p_contract_num, a.contract_num) AND d.customer_abt_number LIKE NVL(p_customer_num, d.customer_abt_number) AND d.customer_name LIKE NVL(p_customer_name, d.customer_name) AND e.update_date between NVL(to_date(p_update_date_start, 'dd-mon-rrrr'), '01-JAN-1900') AND NVL(to_date(p_update_date_end, 'dd-mon-rrrr'), '31-DEC-2199') AND c.doms_order_num LIKE NVL(p_order_num, c.doms_order_num) ORDER BY a.contract_num, c.doms_order_num, e.service_tag, e.sku) LOOP IF NOT vRecords THEN vRecords := TRUE; owa_util.mime_header(ccontent_type => 'application/vnd.ms-excel'); htp.htmlopen; htp.bodyopen; htp.tableopen(cattributes => 'border=1'); htp.tablerowopen; htp.p('<td><b>Contract</b></td>'); htp.p('<td><b>Customer Number</b></td>'); htp.p('<td><b>Customer</b></td>'); htp.p('<td><b>Order#</b></td>'); htp.p('<td><b>Asset</b></td>'); htp.p('<td><b>SKU</b></td>'); htp.p('<td><b>Field</b></td>'); htp.p('<td><b>Previous Value</b></td>'); htp.p('<td><b>New Value</b></td>'); htp.p('<td><b>Update Date</b></td>'); htp.p('<td><b>Updated By</b></td>'); htp.tablerowclose; END IF; htp.tablerowopen; htp.p('<td>' || i.contract_num || '</td>'); htp.p('<td>' || i.customer_abt_number || '</td>'); htp.p('<td>' || i.customer_name || '</td>'); htp.p('<td>' || i.order_num || '</td>'); htp.p('<td>' || i.asset || '</td>'); htp.p('<td>' || i.sku || '</td>'); htp.p('<td>' || i.field || '</td>'); htp.p('<td>' || i.previous_value || '</td>'); htp.p('<td>' || i.new_value || '</td>'); htp.p('<td>' || to_char(i.update_date, 'DD-MON-RRRR HH12:MI:SS') || '</td>'); htp.p('<td>' || i.updated_by || '</td>'); htp.tablerowclose; END LOOP; IF vRecords THEN htp.tableclose; htp.bodyclose; htp.htmlclose; END IF; END GENERATE_REPORT_P; 

但是,当我通过开始GENERATE_REPORT_P()执行此过程; 结束;

我总是得到这个错误:

在这里输入图像说明

我试图弄清楚,但是直到现在我还没有多lessluclk,我试着把所有的代码注释到这个过程中,只是调用owa_util.mime_header(ccontent_type => 'application/vnd.ms-excel'); 看看会发生什么,并从我的表中检查数据types,好吧,几乎所有的基本的东西。

如果有人能给我一些帮助,ou小费,我真的很感激。 致以我的问候!

注意:我从一个packge中提取了这个程序,并且在StackOverflow中放置了一两个东西,所以,iu看到了这个错误消息,并且把它弄糟了,我的不好!

要解决这个特定问题,请在调用generate_report_p之前将这段代码放在某处:

 owa.num_cgi_vars := NVL(owa.num_cgi_vars, 0);