Pular para o conteúdo
Visualizando 12 posts - 1 até 12 (de 12 do total)
  • Autor
    Posts
  • #101057
    Peterson
    Participante

      Bom dia pessoal!

      Tenho um arquivo de texto com números de notas fiscais que quero criar uma tabela com eles. o arquivo só tem números de notas e a tabela só terá uma coluna do tipo NUMBER.

      segue parte do arquivo.

      13304
      39223
      39224
      40059
      39002

      criei o arquivo de controle do sql loader

      LOAD DATA
      INFILE ‘notas.txt'”str’rn'”
      INTO TABLE notas APPEND
      (nota INTEGER)

      BOM… Funciona, ele importa o mesmo número de registros contidos no arquivo. Porém os dados importados não têm nada a ver com o conteúdo do arquivo. exemplo:

      SQL> select * from notas where rownum<11;

      NOTA
      ----------
      808661809
      842152243
      842152243
      892350516
      808466739
      925905969
      909390385
      959525937
      959525937
      909194289

      10 linhas selecionadas.

      SQL>

      Não tenho nenhum registro no arquivo de entrada com esses números de notas.

      Alguém vê algum erro no meu procedimento? No log do sql loader ele não registra erros nem nos arquivos de badfile ou discardfile.

      #101059
      Peterson
      Participante

        Pessoal, resolvi o problema, mas ainda fiquei com dúvida. Fazendo esse input dos dados pelo EM ele me gerou o seguinte arquivo de controle:

        LOAD DATA
        INFILE 'notas.txt'
        APPEND
        INTO TABLE PETERSON.NOTAS
        FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
        (
        NOTA INTEGER EXTERNAL
        )

        Dessa maneira ele importou corretamente todas as linhas. Mas não entendi porque o outro arquivo não funcionou e porque ele colocou a tag de separação de campos por vírgula sendo que tanto o arquivo quanto a tabela só têm um campo para cada registro.

        OBS: Versão do banco Oracle 10G. Será que no 10G ele não carrega registros no sqlloader com a opção de STR? para o infile?

        #101076
        burga
        Participante

          Tem certeza de que as linhas do seu arquivo terminam com rn?
          No Unix/Linux arquivos terminam só com n

          Já peguei problema também de gerar um arquivo com a formatação do windows (rn) e salvar no e-mail (gmail), depois pegar o arquivo do e-mail, e descobrir que este arquivo tinha sido convertido pra final n, só de por no e-mail…

          #101086
          Peterson
          Participante

            Então Burga… fiquei nessa mesma dúvida. Sabe de algum editor de texto que exiba esses caracteres de quebra de linha?

            #101088
            rman
            Participante

              @Peterson

              Para windows conheço o UltraEdit, nele é possível o utilizar o Hex Edit (Ctrl +H), Verifique por 0D 0A ou 0A 0D ou apenas 0D.

              #101095
              burga
              Participante

                Outro que mostra fácil também é o EditPlus, logo no rodapé dele, parte direita, já apresentam estas informações. E se tiver errado, ele permite modificar.

                #101099
                diegolenhardt
                Participante

                  Notepad++, view > show symbol > show end of line

                  #101125
                  Peterson
                  Participante

                    Obrigado amigos! Problema resolvido!

                    #101129
                    burga
                    Participante

                      E aí Peterson, descobriu o que era? Fiquei curioso…

                      #101130
                      Peterson
                      Participante

                        Então Burga,

                        O pessoal me passou uma relação de notas fiscais para serem consultadas… eles extraíram essa relação de notas de um relatório do sistema e simplesmente a colarem no bloco de notas, assim sendo não havia os caracteres de quebra de linha ao final de cada linha e o SQLLoader não conseguia trabalhar com os parâmetros que eu passava.

                        #101131
                        rman
                        Participante

                          @Peterson

                          Não existia os caracteres de quebra de linha ? 😯

                          Se cada nota estava em uma linha, existe sim.

                          #101132
                          Peterson
                          Participante

                            @rman,

                            então, abri o arquivo no vi e não havia os caracteres de quebra de linha. Abri um novo documento de texto e digitei alguns números, um em cada linha, abri esse arquivo também no vi e lá estavam os caracteres de quebra de linha.

                            Não sei dizer oq houve com o arquivo para não conseguir ver esses caracteres lá.

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