Oracle APEX -使用按钮将查询导出为CSV

d5vmydt9  于 2023-03-22  发布在  Oracle
关注(0)|答案(3)|浏览(203)

我有一个顶点页面上的按钮,应该允许用户导出数据(基于查询没有看到由最终用户)到CSV文件。
如何将此按钮链接到我的查询,以便我们可以将结果导出到CSV文件?
谢谢

i1icjdpr

i1icjdpr1#

我曾经这样做过,在页面上用condition=never定义了一个区域,但是你仍然可以用相关的URL调用下载,当区域 * 可见时,你可以使用浏览器的Inspect Element功能从“download as CSV”链接中农场。

您将看到请求是带前缀的区域ID。因此您可以使用此调用下载

/ords/f?p=your_app:your_page:your_session:FLOW_EXCEL_OUTPUT_R571755827567965848_en

或者让按钮调用相同的JavaScript

window.location.href=apex.server.url({p_request: 'FLOW_EXCEL_OUTPUT_R571755827567965848_en'},2);

即使区域条件为“从不”,此操作也有效。

ylamdve6

ylamdve62#

感谢Scott Spendolini,我使用了他的链接:https://spendolini.blogspot.fr/2006/04/custom-export-to-csv.html
我只是用我的查询创建了一个报告区域。添加一个按钮,它将使您进入我创建的空白页面。在该页面上,我添加了一个PL/SQL进程,它将在该进程的源代码中触发“On Load - Before Header”,我使用以下代码:

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;
atmip9wb

atmip9wb3#

我在我的页面中使用了相同的代码,在头进程之前,它工作正常。问题是我有3个进程,每个进程在不同的条件下运行,例如:如果:P12_reg_id=11,则进程-1,如果:P12_reg_id=12,则进程-2将执行并下载CSV。
我把condtion在进程服务器端的条件,但只有第一个进程正在下载.
有什么建议吗

相关问题