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

      Boa tarde amigos,

      preciso desenvolver uma stored procedure que gere um arquivo txt de acordo com uma consulta sendo que:
      esse arquivo terá que estar formatado da seguinte maneira:
      cabeçalho
      registro 1
      registro 2
      registro 3
      rodapé
      cabeçalho
      registro 1
      registro 2
      registro 3
      registro 4
      registro 5
      rodapé

      algum amigo poderia me dar uma ajuda?
      no aguardo
      Raphael

      #82034
      Marcio68Almeida
      Participante

        isso tem cara de arquivo a ser enviado a banco ou telefonia…
        para gerar arquivo TXT, existem diversas formas, SPOOL, DBMS_OUTPUT entre outras…
        sugiro que você crie pequenos processos que gerem de forma independente o cabeçalho, as linhas detalhe e o rodapé.
        assim que acionado o SPOOL (por exemplo) vá chamando os processos que gerarão as linhas na sequência adequada…
        isso vai ser gerado em batch ?
        além de fazer via procedure, há a possibilidade de fazer via programa externo tipo SCRIBES ??? http://scribes.ipnetwork.eti.br/index_br.php

        #82035
        rbfonseca
        Participante

          esse arquivo é para ser enviado a um órgão externo.

          eu poderia desenvolver isso pelo delphi, mas o que gostaria realmente é deixar isso no banco e somente estatar o processo.

          tem como vc me dar uma idéia desses processos pequenos e o esquema do spool?

          no aguardo
          Raphael

          #82040
          Marcio68Almeida
          Participante

            Para startar o processo automaticamente, o Oracle tem o esquedule de jobs, ele define horário e dias específicos para executar o processo, por exemplo, toda noite, todo dia primeiro, dias primeiro e décimo quinto, etc…

            Você teria que fazer um processo maior que vai criar um arquivo texto a ser populado e selecionar os objetos a serem listados, pode ser um cursor.
            Dentro desse loop maior, você vai passar por parâmetro qual a informação de cabeçalho, para uma procedure que envie para o arquivo texto
            Depois chamar uma outra procedure que listará as linhas referentes ao cabeçalho acima
            Depois chamar a terceira procedure que encerrará o pacote com o rodapé.
            passa para a próxima linha a ser processada e continua no loop até terminar.
            Fechar o arquivo texto gerado.

            Não vou colocar um esqueleto de procedures por que não é o meu forte, mas aqui certametne há pessoas mais bem qualificadas para isso…
            Seguindo este escopo, as procedures criadas poderão ser aproveitadas em outros processos.
            Tente ao máximo evitar criar os famosos linguições… ❗

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