GERAR ARQUIVO POSITIONAL VIA SQLPLUS

Scripts Diversos para o Oracle SQL*Plus. (Relacionado a ferramenta Oracle SQL*Plus, para questões de SQL, usar o forum SQL)
Responder
DEIASV
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 30
Registrado em: Seg, 01 Mar 2010 11:12 am
Localização: rio de janeiro RJ

Heeeelp,

Teria como eu gerar um arquivo txt positional com 43000 linhas e cada linha com 119 posições via sqlplus na minha máquina local?

Gerei o seguinte SQL :

Selecionar tudo

DECLARE

  CURSOR S1 IS
  
  SELECT tp_reg           
        ,funcao           
        ,cnpj_emis        
        ,cnpj_dest        
        ,num_invoice      
        ,serie_invoice    
        ,date_invoice     
        ,tot_linha_invoice
        ,tot_desc_invoice 
        ,tot_invoice      
        ,date_invoice_cd  
        ,num_par_invoice  
        ,date_par_invoice 
        ,vl_par_invoice   
        ,date_pag_par_inv 
        ,tp_retencao      
        ,invoice_id       
        ,vendor_site_id   

    FROM B2W_NFAP_MERC_CONTROL
order by invoice_id,tp_reg,num_invoice,num_par_invoice;


BEGIN

   for r1 in s1 loop
   
    if r1.tp_reg = '02' then
    
         
    DBMS_OUTPUT.put_line(      R1.TP_REG                                || -- 01. Tipo Registro
                               R1.FUNCAO                                || -- 02. Função Mensagem
                               R1.CNPJ_EMIS                             || -- 03. CNPJ Emissor da NF
                               R1.CNPJ_DEST                             || -- 04. CNPJ Destinatário da NF
                               RPad(R1.NUM_INVOICE,17,' ')            || -- 05. Número da Nota Fiscal
                               R1.SERIE_INVOICE                                   || -- 06. Série da NF
                                R1.date_invoice                        || -- 07. Data e Hora da Emissão NF
                                R1.tot_linha_invoice                          || -- 08. Valor Total das Linhas da NF
                                LPad('0',15,'0')                          || -- 09. Valot Total dos Descontos
                                R1.TOT_INVOICE                          || -- 10. Valor Total da NF
                                R1.date_invoice_cd);                          -- 11. Data de Entrega no CD
    
    elsif r1.tp_reg = '20' then
    
    
       
    DBMS_OUTPUT.put_line ( 
    
                                        R1.TP_REG                           || -- 01. Tipo Registro
                                        R1.num_par_invoice                    || -- 02. Número da Parcela
                                        R1.date_par_invoice                      || -- 03. Data de Vencimento Parcela
                                        R1.vl_par_invoice                     || -- 04. Valor Parcela da NF
                                        LPad('0',8,'0')                     || -- 05. Data Pagamento Parcela
                                        R1.tp_retencao);                                -- 06. Tipo Retenção
    end if;
    
    


   
   end loop;

END;
gfkauer
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 389
Registrado em: Ter, 27 Jul 2010 1:34 pm
Localização: Sapiranga - RS
Contato:
Quem falou que programar era fácil??

Quanto mais dificil for a implementação mais valorizado seu trabalho será!

Acessem: www.gfkauer.com.br

Tente o seguinte:

Antes do seu declare coloque

Selecionar tudo

Spool C:\caminho\nome_arquivo.txt
e após executar seu script
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 5 visitantes