none
Separador por espaço (" ") ao exportar arquivo RRS feed

  • Pergunta

  • Pessoal, 

    estou criando um arquivo .dtsx no SQL SERVER 2008 e preciso colocar num arquivo .txt o resultado de uma consulta. Até aí tudo bem, porém, preciso separar cada coluna do resultado no arquivo .txt por um espaço, e não por uma vírgula. 

    Vejam como o arquivo sai:

    2340,thiago,2012/12/01

    E preciso que saia assim:

    2340 thiago 2012/12/01

    Algém pode me ajudar ??????

    Valeu galera. 


    • Editado Thiago H. Souza quinta-feira, 29 de novembro de 2012 18:02 erro no título
    quinta-feira, 29 de novembro de 2012 17:59

Respostas

  • Thiago, boa tarde.

    É bem simples montar este  arquivo com um delimitador customizado pelo usuário, mas em minha opinião isto é extramamente arriscado. Os delimitadores devem ser bem escolhidos, pois dentro de um arquivo texto ele precisa ser um caracter exclusivo e único para o processo de ETL entender perfeitamente as divisões de colunas. Se um delimitador não é exclusivo dentro de um arquivo, ou seja, se um caracter selecionado como delimitar estiver em alguma partícula de algum campo dentro do TXT esta importação falhará.

    Exemplo:

    Se o delimitador for " " espaço em branco, como um importador poderá reconhecer um arquivo contendo este dado?:

    ID Endereco

    12 R 31 de março,23

    Dentro do campo endereço existe o espaço em branco e o importador retornará uma mensagem de erro, dizendo que as colunas não estão mapeadas corretamente.

    Outro delimitador que um monte de gente adora usar: a famosa vírgula ","

    Como o exemplo acima, o endereço possui vírgula, então o processo de ETL falhará.

    Tente conversar com a outra ponta (área que irá importar este arquivo exportado por você ), sinalizando os riscos de gerar um arquivo com delimitador por espaço. Isto pode causar erros na hora da importação.

    Se vc consegue garantir que todos os campos exportados não haverá espaços em branco, amém! Pode utilizar sem problemas. Mas se vc possui um pontinha de dúvida de como estão estruturados os seus dados, esquece! Mude de delimitador, pincipalmente se houverem campos de textos maiores que 2.

    Segue o print da tela de onde vc personaliza o seu delimitador, tanto no integration services, como no Import/Export Wizard.

    No integration

    no Import/Export Wizard

    Em todos as exportações utilizando delimitadores eu sempre uso o ponto-e-vírgula ";", pipe "|" ou cerquilha "#"

    Abs.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp


    sexta-feira, 30 de novembro de 2012 14:32

Todas as Respostas

  • Thiago, boa tarde.

    É bem simples montar este  arquivo com um delimitador customizado pelo usuário, mas em minha opinião isto é extramamente arriscado. Os delimitadores devem ser bem escolhidos, pois dentro de um arquivo texto ele precisa ser um caracter exclusivo e único para o processo de ETL entender perfeitamente as divisões de colunas. Se um delimitador não é exclusivo dentro de um arquivo, ou seja, se um caracter selecionado como delimitar estiver em alguma partícula de algum campo dentro do TXT esta importação falhará.

    Exemplo:

    Se o delimitador for " " espaço em branco, como um importador poderá reconhecer um arquivo contendo este dado?:

    ID Endereco

    12 R 31 de março,23

    Dentro do campo endereço existe o espaço em branco e o importador retornará uma mensagem de erro, dizendo que as colunas não estão mapeadas corretamente.

    Outro delimitador que um monte de gente adora usar: a famosa vírgula ","

    Como o exemplo acima, o endereço possui vírgula, então o processo de ETL falhará.

    Tente conversar com a outra ponta (área que irá importar este arquivo exportado por você ), sinalizando os riscos de gerar um arquivo com delimitador por espaço. Isto pode causar erros na hora da importação.

    Se vc consegue garantir que todos os campos exportados não haverá espaços em branco, amém! Pode utilizar sem problemas. Mas se vc possui um pontinha de dúvida de como estão estruturados os seus dados, esquece! Mude de delimitador, pincipalmente se houverem campos de textos maiores que 2.

    Segue o print da tela de onde vc personaliza o seu delimitador, tanto no integration services, como no Import/Export Wizard.

    No integration

    no Import/Export Wizard

    Em todos as exportações utilizando delimitadores eu sempre uso o ponto-e-vírgula ";", pipe "|" ou cerquilha "#"

    Abs.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp


    sexta-feira, 30 de novembro de 2012 14:32
  • Eduardo, obrigado.

    Era exatamente isso que eu precisava. Consegui fazer a exportação com o espaço do jeito que eu precisava.

    Obrigado mesmo.

    Só pra esclarecer, no meu caso aqui, o sistema que integra esse arquivo, reconhece cada campo pelo número de caracteres.

    Por exemplo: "1812121400Eduardo me respondeu".

    No meu sistema, ele define um layout, onde os 8 primeiros caracteres é a data, os próximos 4 caracteres é referente a hora e os próximos 50 caracteres alguma observação. Sendo assim, o sistema entende que :

    A data é "18/12/12", que a hora é "14:00" e que a observação é "Eduardo me respondeu".

    Agora, eu faço esse tratamento de número de caracteres já na procedure que retorna meus dados.

    Obrigado pela ajuda Eduardo.

    Abraços.

    terça-feira, 18 de dezembro de 2012 16:36