Pular para o conteúdo
  • Este tópico contém 3 respostas, 4 vozes e foi atualizado pela última vez 16 anos, 4 meses atrás por MauroLacerda.
Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Autor
    Posts
  • #90702
    leo_jf
    Participante

      PessoALL,

      Alguém saberia, no pl/sql, como criar um programa que eu possa unificar e contabilizar registros.

      Tenho o arquivo A, nesse arquivo cada registro inicia-se com 00 e no final inicia-se com 99 que é a totalização de todos os registros 00. O arquivo B idem.
      Tenho que fazer um pl/sql que una esses dois arquivos, e no final, arq. C, eu faça também um totalizador de registros 00.
      To fazendo através do utl_file, mas eu algum momento tô errando.
      Alguém teria uma dica?
      Qq ajuda é bem vinda!!!
      []s

      #90703
      diegolenhardt
      Participante

        Voce pode abrir um arquivo novo em modo gravação, e a cada Get_Line dos arquivos A e B voce da faz Put_Line, posta o seu código que fica mais fácil verificar..

        #90728
        sosa
        Participante

          Não sei como é que você usa os arquivos, mas assumindo que é ler um e gravar, ler o outro e gravar tem vários algorítimos possíveis:

          Um deles é assim:


          Abrir ArquivoC
          i = 1
          enquanto ArquivoA EOF faça
          escreva ArquivoA[i] em ArquivoC
          i = i + 1
          fim enquanto

          i = 1
          enquanto ArquivoB EOF faça
          escreva ArquivoB[i] em ArquivoC
          i = i + 1
          fim enquanto

          escreva "00"em ArquivoC

          Acho que é mais ou menos isso… Perdôem o algorítimo, ehehehe, as outras formas, incluem colocar tudo em vetor, ou em memória, ou jogar pra tabela, ou ler os arquivos textos como tabelas e ao final gravá-los. Mas tudo depende da lógica do negócio…

          #90919
          MauroLacerda
          Participante

            Segue a dica:

            http://www.devmedia.com.br/articles/vie … ?comp=2720

          Visualizando 4 posts - 1 até 4 (de 4 do total)
          • Você deve fazer login para responder a este tópico.