Как написать процедуру plsql для генерации Excel с данными запроса? - PullRequest
0 голосов
/ 15 ноября 2018

Мне нужно создать процедуру, которая генерирует лист Excel, включая вывод запроса. Пожалуйста, помогите!

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

Вы можете создать такой пакет ( Ранее мы производные от Тома Кайта ):

create or replace package to_excel is
 procedure xls(my_query in varchar2);
 procedure xls(my_query in varchar2,p_tip in varchar2);
 procedure xls2(my_query in varchar2); 
 procedure csv(my_query in varchar2,p_tip in varchar2);
end;

create or replace package body to_excel is
procedure xls(my_query in varchar2) is
begin
  owa_util.mime_header( ccontent_type => 'application/excel');
  --, ccharset => 'WE8ISO8859P9' ); -- , ccharset =>  'TR8MSWIN1254' , 'UTF-8'  
  owa_sylk.show( p_query=>replace(my_query,'x*x','%') );
end;

procedure xls(my_query in varchar2,p_tip in varchar2) is
begin
  owa_util.mime_header( 'application/excel' );
  owa_sylk.show( p_query=>replace(my_query,'x*x','%'), p_tip=>p_tip );
end;

procedure xls2(my_query in varchar2) is
begin
  owa_util.mime_header('application/vnd.ms-excel',false);
  htp.p('Cache-Control: no-store');
  htp.p('Expires: -1');
  owa_util.http_header_close;
  owa_sylk.show( p_query=>replace(my_query,'x*x','%') );

end;
procedure csv(my_query in varchar2,p_tip in varchar2) is
begin
  owa_util.mime_header( 'application/csv' );
  owa_sylk.show( p_query=>replace(my_query,'x*x','%'), p_tip=>p_tip );
end;


end;

это хороший, полезный метод, напрямую вызываемый из веб-браузера, такой как https://..../pls/<dad_name>/<schema_name>.to_excel.xls?my_query=select sysdate from dual

0 голосов
/ 15 ноября 2018

Ознакомьтесь с решением Rene Nyffenegger github: https://github.com/ReneNyffenegger/xlsx_writer-Oracle

Насколько мне известно, нет пакета Oracle, который генерирует файлы xsl / xslx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...