begin
-- Set the MIME type
owa_util.mime_header( 'application/octet', FALSE );
-- Set the name of the file
htp.p('Content-Disposition: attachment; filename="emp.csv"');
-- Close the HTTP Header
owa_util.http_header_close;
-- Loop through all rows in EMP
for x in (select e.ename, e.empno, d.dname
from emp e, dept d where e.deptno = d.deptno
and e.deptno like :P1_DEPTNO)
loop
-- Print out a portion of a row,
-- separated by commas and ended by a CR
htp.prn(x.ename ||','|| x.empno ||','||
x.dname || chr(13));
end loop;
-- Send an error code so that the
-- rest of the HTML does not render
htmldb_application.g_unrecoverable_error := true;
end;
3条答案
按热度按时间i1icjdpr1#
我曾经这样做过,在页面上用condition=never定义了一个区域,但是你仍然可以用相关的URL调用下载,当区域 * 可见时,你可以使用浏览器的Inspect Element功能从“download as CSV”链接中农场。
您将看到请求是带前缀的区域ID。因此您可以使用此调用下载
或者让按钮调用相同的JavaScript
即使区域条件为“从不”,此操作也有效。
ylamdve62#
感谢Scott Spendolini,我使用了他的链接:https://spendolini.blogspot.fr/2006/04/custom-export-to-csv.html
我只是用我的查询创建了一个报告区域。添加一个按钮,它将使您进入我创建的空白页面。在该页面上,我添加了一个PL/SQL进程,它将在该进程的源代码中触发“On Load - Before Header”,我使用以下代码:
atmip9wb3#
我在我的页面中使用了相同的代码,在头进程之前,它工作正常。问题是我有3个进程,每个进程在不同的条件下运行,例如:如果:P12_reg_id=11,则进程-1,如果:P12_reg_id=12,则进程-2将执行并下载CSV。
我把condtion在进程服务器端的条件,但只有第一个进程正在下载.
有什么建议吗