Jump to content
Fórum Script Brasil
  • 0

(Resolvido) leitura de arquivo texto via dts SQL SERVER 2000


reinaldoaz

Question

Criei uma DTS no sql server 2000 para ler um arquivo txt e carregar numa tabela. O tamanho das linhas do arquivo é 300 caracteres e o campo onde estou inserindo na tabela é do tipo char (500). Abri o arquivo com NotePad++ e verifiquei que não possui "sujeira", estando os caracteres CR e LF na posição 301 em todas as linhas (apenas 131 linhas).

Ocorre que, ao rodar a dts, apenas os 20 primeiros caracteres DE CADA LINHA são carregados na tabela. Alguém tem alguma dica que possa me auxiliar na solução do problema? (Preciso carregar TODOS os caracteres das linhas do arquivo fonte)

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0
Boa tarde Reinaldo,

Verifique o tamanho do campo em que os dados estão sendo gravados. Faça o este alterando o tipo para varchar. Todas as linhas são inseridas no sql?

Fulvio, boa tarde.

Muito obrigado pela ajuda.

Respondendo o que você perguntou: o tamanho do campo (coluna de uma tabela) é 500 e as linhas do arquivo fonte têm tamanho 300 (dá e sobra). Todas as linhas estão sendo lidas, mas apenas até a posição 20.

Detalhe: o arquivo possui header e trailler. Estas duas linhas, por por possuírem menos de 20 caracteres são lidos por completo. As demais linhas, somente até a posição 20. A linha do header possui 10 caracteres preenchidos.

Esclarecendo: todas as linhas possuem 300 posições do arquivo original possuem 300 posições; se os dados terminam antes desta posição, completa-se com brancos até a posição 300, incluindo o header e o trailler

Alterei o campo da tabela de destino de char(500) para varchar(500), rodei novamente e problema persiste. Reforço que estou usando SQL SERVER 2000

Link to comment
Share on other sites

  • 0

Boa tarde Reinaldo,

Tem como você mascarar os dados e enviar o arquivo pra mim (ou então postar)? Não precisa ser o arquivo full. Apenas 2 linhas dá pra fazer os testes aqui. Apesar de trabalhar com sql2005, tenho o 2000 aqui. :.)

Link to comment
Share on other sites

  • 0
Boa tarde Reinaldo,

Tem como você mascarar os dados e enviar o arquivo pra mim (ou então postar)? Não precisa ser o arquivo full. Apenas 2 linhas dá pra fazer os testes aqui. Apesar de trabalhar com sql2005, tenho o 2000 aqui. :.)

Fulvio,

Agradeço demais sua boa vontade. Resolvi excluir a DTS e reconstruí-la. Funcionou. O que acho que pode ter acontecido é: 1) que copiei cada task de uma outra DTS e colei na nova (a rotina acima é apenas parte de uma outra DTS) - improvável q o problema seja aqui, mas... 2) Ao criar a task que lê o arquivo e grava na tabela, utilizei, incialmente, a opçao que as linhas eram separadas por qualquer caracter - selecionando a opção CR LF - ao invés de informar que as linhas tinham tamanho fixo.

Pode não ser isso, mas, em todo caso, está resolvido. Valeu

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...