Ir para conteúdo
Fórum Script Brasil
  • 0

Extração de dados para planilha excel


Sergiolfj

Pergunta

Criei uma procedure que recebe como parametro apenas o caminho onde os arquivos deveriam ser gerados. A principio seria simples, são duas queries onde a segunda trabalha com o resultado da primeira.

A primeira query traz o código de todos os perfis existentes na base e cria um arquivo excel para cada código, a segunda query pegaria o codigo de cada perfil e buscaria todas as funções vinculadas a ele jogando o reultado para o excel correspondente. Porém isso não ocorre, e a planilha sai com a fomatação desconfigurada. Segue o codig que utilizei:

create or replace procedure TS.SEGLOG_REVALIDA_PERFIS(p_diretorio in VARCHAR) is

v_caminho varchar2(2000);

v_data_ini_aux varchar2(10);

v_nome_arquivo1 varchar2(100);

v_diretorio varchar2(1000);

simprime varchar(1);

-- Pacote para trabalhar com arquivo

fhandler utl_file.file_type;

begin

simprime := 'S';

v_diretorio := p_diretorio;

v_data_ini_aux := to_char(sysdate , 'yyyymmdd');

---------------------------------------------

-- LISTA PERFIS DO SISTEMA -

--------------------------------------------

FOR PERFIL_DATA IN (SELECT COD_PERFIL

FROM TS_SEC.PERFIL)

LOOP

v_nome_arquivo1 := PERFIL_DATA.COD_PERFIL || '.csv';

fhandler := utl_file.fopen(v_diretorio, v_nome_arquivo1, 'w');

---------------------------------------------

-- LISTA AS FUNCOES DE CADA PERFIL -

--------------------------------------------

begin

for c_cursor in (SELECT AU.COD_FUNCAO

, MO.NOM_MODULO

, FU.TXT_TITULO_FUNCAO

, AU.IND_INCLUSAO

, AU.IND_ATUALIZACAO

, AU.IND_EXCLUSAO

, AU.IND_CONSULTA

, AU.IND_ESPECIAL

, AU.IND_EXECUCAO

FROM TS_SEC.AUTORIZACAO_PERFIL AU

, TS_SEC.FUNCAO FU

, TS_SEC.MODULO MO

WHERE AU.COD_PERFIL = PERFIL_DATA.COD_PERFIL

AND FU.COD_FUNCAO = AU.COD_FUNCAO

AND AU.COD_MODULO = MO.COD_MODULO

AND FU.COD_MODULO = MO.COD_MODULO)

loop

if simprime = 'S'

then

utl_file.put_line(fhandler, '<html>');

utl_file.put_line(fhandler, '<style type="text/css">');

utl_file.put_line(fhandler, ' .FmtTexto {mso-number-format:\@}');

utl_file.put_line(fhandler, '</style>');

utl_file.put_line(fhandler, '<body >');

utl_file.put_line(fhandler, '<table width="100%" border="1" cellspacing="0" cellpadding="0">');

utl_file.put_line(fhandler, '<tr>');

utl_file.put_line(fhandler, '<td bgcolor="ccffcc"><b>CODIGO_FUNCAO</b></td>');

utl_file.put_line(fhandler, '<td bgcolor="ccffcc"><b>NOME_MODULO</b></td>');

utl_file.put_line(fhandler, '<td bgcolor="ccffcc"><b>TITULO_FUNCAO</b></td>');

utl_file.put_line(fhandler, '<td bgcolor="ccffcc"><b>INCLUI</b></td>');

utl_file.put_line(fhandler, '<td bgcolor="ccffcc"><b>ATUALIZA</b></td>');

utl_file.put_line(fhandler, '<td bgcolor="ccffcc"><b>EXCLUI</b></td>');

utl_file.put_line(fhandler, '<td bgcolor="ccffcc"><b>CONSULTA</b></td>');

utl_file.put_line(fhandler, '<td bgcolor="ccffcc"><b>FUNCAO_ESPECIAL</b></td>');

utl_file.put_line(fhandler, '<td bgcolor="ccffcc"><b>EXECUTA</b></td>');

utl_file.put_line(fhandler, '</tr>');

simprime := 'N';

end if;

utl_file.put_line(fhandler, '<tr>');

utl_file.put_line(fhandler, ' <td >' || c_cursor.cod_funcao || '</td>');

utl_file.put_line(fhandler, ' <td >' || c_cursor.nom_modulo || '</td>');

utl_file.put_line(fhandler, ' <td >' || c_cursor.txt_titulo_funcao || '</td>');

utl_file.put_line(fhandler, ' <td >' || c_cursor.ind_inclusao || '</td>');

utl_file.put_line(fhandler, ' <td >' || c_cursor.ind_atualizacao || '</td>');

utl_file.put_line(fhandler, ' <td >' || c_cursor.ind_exclusao || '</td>');

utl_file.put_line(fhandler, ' <td >' || c_cursor.ind_consulta || '</td>');

utl_file.put_line(fhandler, ' <td >' || c_cursor.ind_especial || '</td>');

utl_file.put_line(fhandler, ' <td >' || c_cursor.ind_execucao || '</td>');

utl_file.put_line(fhandler, '</tr>');

end loop;

end;

utl_file.put_line(fhandler, ' </body></html>');

utl_file.fclose(fhandler);

end loop;

end;

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...