- Este tópico contém 16 respostas, 6 vozes e foi atualizado pela última vez 17 anos, 4 meses atrás por
felipeldm.
-
AutorPosts
-
31 de outubro de 2008 às 8:19 pm #83443
rerodrig
Participante[quote=”RicardoPortilhoProni”:1u43lmbj]Não serve um SPOOL separado por vírgulas?
Ele poderia ser importando no excel e feito com um simples SELECT.[/quote]Então Ricardo, sinceramente não entendo como ficaria desse jeito, o que você diz seria como preencher um arquivo texto normal? Pelo que você falou eu acho que não tem como, se tivesse ajudaria, ficaria muito mais simples, mas é como eu havia dito tem que ser naquela “linguagem” do próprio excel, além de ter as formatações e tal…Falow!
Renato Rodrigues
4 de novembro de 2008 às 6:29 pm #83514felipeldm
ParticipanteCaríssimos,
Consegui resolver meu problema com ajuda do amigo rerodrig.
Criei a seguinte Package:CREATE OR REPLACE PACKAGE BODY PK_GERA_REL AS
procedure p( p_str in varchar2 )
is
begin
dbms_lob.append(clob_Msg, p_str||CHR(10));
exception
when others then null;
end;procedure PR_GERA_REL is
beginselect
to_char(sysdate,’dd_mon_yyyy’)
into
v_date
from
dual;dbms_lob.createtemporary(clob_Msg, TRUE, dbms_lob.session);
p( ‘ID;ORACLE’ );
–print_comment( ‘Fonts’ );
p( ‘P;FCourier New;M200’ );
p( ‘P;FCourier New;M200;L11’ );
p( ‘P;FCourier New;M200;SB’ );
p( ‘P;FCourier New;M200;SUB’ );
p( ‘P;FCourier New;M200;SIB;L12’ );
p( ‘P;FArial;M300;SUB;L11’ );
p( ‘F;R1;SIDM6;M500’);
p( ‘C;X1;Y1;K”Saldo de Trocas para: ‘||to_char(sysdate,’dd/mm/yyyy’)||'”‘);
p( ‘F;R3;FG0C;G’);
p( ‘F;Y3;X1;STLBRM3’);
p( ‘C;Y3;X1;K”COD. EMPRESA”‘);
p( ‘F;Y3;X2;STLBRM3’);
p( ‘C;Y3;X2;K”COD. REPRES”‘);
p( ‘F;Y3;X3;STLBRM3’);
p( ‘C;Y3;X3;K”NOME REPRES”‘);
p( ‘F;Y3;X4;STLBRM3’);
p( ‘C;Y3;X4;K”ANOMES”‘);
p( ‘F;Y3;X5;STLBRM3’);
p( ‘C;Y3;X5;K”VENDAS MES ANT(R$)”‘);
p( ‘F;Y3;X6;STLBRM3’);
p( ‘C;Y3;X6;K”VLR CONCEDIDO(R$)”‘);
p( ‘F;Y3;X7;STLBRM3’);
p( ‘C;Y3;X7;K”VLR USADO(R$)”‘);
p( ‘F;Y3;X8;STLBRM3’);
p( ‘C;Y3;X8;K”SALDO(R$)”‘);linha := 3;
for r_proc in (
SELECT TBL.COD_REPRES
FROM TBL_GESTAO_VERBAS_TROCA TBL,
VW_CANAL_VENDA CAN
WHERE CAN.COD_EMPRESA = TBL.COD_EMPRESA
AND CAN.COD_REPRES = TBL.COD_REPRES
AND TBL.ANOMES = TO_CHAR(SYSDATE,’YYYYMM’)
) loopfor r_det in (
SELECT TBL.COD_EMPRESA,
TBL.COD_REPRES,
CAN.NOME_REPRES,
TBL.ANOMES,
TBL.VLR_VENDA_MANT,
TBL.VLR_CONCEDIDO,
TBL.VLR_USADO,
TBL.VLR_SALDO
FROM TBL_GESTAO_VERBAS_TROCA TBL,
VW_CANAL_VENDA CAN
WHERE CAN.COD_EMPRESA = TBL.COD_EMPRESA
AND CAN.COD_REPRES = TBL.COD_REPRES
AND TBL.ANOMES = TO_CHAR(SYSDATE,’YYYYMM’)
AND TBL.COD_REPRES = r_proc.Cod_Repres
) looplinha := linha + 1;
if MOD(linha,2) = 0 then
p( ‘F;Y’||linha||’;X1;STLBRM0;FG0C’);
p( ‘C;Y’||linha||’;X1;K”‘||r_det.cod_empresa||'”‘);
p( ‘F;Y’||linha||’;X2;STLBRM0′);
p( ‘C;Y’||linha||’;X2;K”‘||r_det.cod_repres||'”‘);
p( ‘F;Y’||linha||’;X3;STLBRM0′);
p( ‘C;Y’||linha||’;X3;K”‘||r_det.nome_repres||'”‘);
p( ‘F;Y’||linha||’;X4;STLBRM0′);
p( ‘C;Y’||linha||’;X4;K”‘||r_det.anomes||'”‘);
p( ‘F;Y’||linha||’;X5;STLBRM0;FG0C’);
p( ‘C;Y’||linha||’;X5;K”‘||r_det.vlr_venda_mant||'”‘);
p( ‘F;Y’||linha||’;X6;STLBRM0;FG0C’);
p( ‘C;Y’||linha||’;X6;K”‘||r_det.vlr_concedido||'”‘);
p( ‘F;Y’||linha||’;X7;STLBRM0;FG0C’);
p( ‘C;Y’||linha||’;X7;K”‘||r_det.vlr_usado||'”‘);
p( ‘F;Y’||linha||’;X8;STLBRM0;FG0C’);
p( ‘C;Y’||linha||’;X8;K”‘||r_det.vlr_saldo||'”‘);
else
p( ‘F;Y’||linha||’;X1;STLBRM1;FG0C’);
p( ‘C;Y’||linha||’;X1;K”‘||r_det.cod_empresa||'”‘);
p( ‘F;Y’||linha||’;X2;STLBRM1′);
p( ‘C;Y’||linha||’;X2;K”‘||r_det.cod_repres||'”‘);
p( ‘F;Y’||linha||’;X3;STLBRM1′);
p( ‘C;Y’||linha||’;X3;K”‘||r_det.nome_repres||'”‘);
p( ‘F;Y’||linha||’;X4;STLBRM1′);
p( ‘C;Y’||linha||’;X4;K”‘||r_det.anomes||'”‘);
p( ‘F;Y’||linha||’;X5;STLBRM1;FG0C’);
p( ‘C;Y’||linha||’;X5;K”‘||r_det.vlr_venda_mant||'”‘);
p( ‘F;Y’||linha||’;X6;STLBRM1;FG0C’);
p( ‘C;Y’||linha||’;X6;K”‘||r_det.vlr_concedido||'”‘);
p( ‘F;Y’||linha||’;X7;STLBRM1;FG0C’);
p( ‘C;Y’||linha||’;X7;K”‘||r_det.vlr_usado||'”‘);
p( ‘F;Y’||linha||’;X8;STLBRM1;FG0C’);
p( ‘C;Y’||linha||’;X8;K”‘||r_det.vlr_saldo||'”‘);
end if;end loop;
end loop;
p( ‘F;Y’||linha||’;X1;SLBM0′);
p( ‘F;Y’||linha||’;X2;SBM0′);
p( ‘F;Y’||linha||’;X3;SBM0′);
p( ‘F;Y’||linha||’;X4;SBM0′);
p( ‘F;Y’||linha||’;X5;SBM0′);
p( ‘F;Y’||linha||’;X6;SBM0′);
p( ‘F;Y’||linha||’;X7;SBM0′);
p( ‘F;Y’||linha||’;X8;SBM0′);
p( ‘F;W1 1 13’);
p( ‘F;W2 2 12’);
p( ‘F;W3 3 31’);
p( ‘F;W4 4 7’);
p( ‘F;W5 5 19’);
p( ‘F;W6 6 18’);
p( ‘F;W7 7 14’);
p( ‘F;W8 8 11’);
p( ‘F;W9 9 7’);
p( ‘F;W10 10 12’);
p( ‘E’);insert into tb_spool_rel(linha) values (clob_Msg);
–insert into report(x) values (clob_Msg);end;
END;
Se notarem, coloquei uma cláusula para a linha que, se for ímpar será preta e se par será vermelha. Removi os totais também.
Depois disso tudo gerei um BAT pra rodar essa procedure e criar o arquivo em SPOOL e setar alguns parametros….
-
AutorPosts
- Você deve fazer login para responder a este tópico.