Ir para conteúdo
Fórum Script Brasil
  • 0

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


reinaldoaz

Pergunta

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 para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...