Usuário com melhor resposta
BULK INSERT com FILE FORMAT sem CARACTER TERMINATOR?

Pergunta
-
Estou utilizando BULK INSERT para importação de uma massa de dados de um arquivo de texto (30 milhões de registros). Porém a formatação do arquivo não possui caracteres de separação, apenas posição inicial e número de caracteres do campo.
Exemplo:
00000000000000EMPRESA TESTE 12122001
Posição 1: tamanho 14 = (campo CNPJ)
Posição 15: tamanho 27 = (campo Nome da Empresa)
Posição 28: tamanho 8 = (campo Data Fundação)
Existe alguma forma de criar um FILE FORMAT (Arquivo de Formato) sem o CARACTER TERMINATOR, especificando apenas a posição inicial e o tamanho do Campo?
Respostas
-
Saltador, importe tudo em uma única linha e depois trate o dado através de substring. Ou vc pode utilizar o BCP para tal feito.
http://gaurangpatel.net/importing-fixed-position-file-into-sql-server
Abs.
Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp
- Marcado como Resposta Junior Galvão - MVPMVP, Moderator terça-feira, 2 de abril de 2013 13:11
- Não Marcado como Resposta Saltador sexta-feira, 5 de abril de 2013 15:36
- Marcado como Resposta Saltador sexta-feira, 5 de abril de 2013 15:37
- Não Marcado como Resposta Saltador segunda-feira, 21 de outubro de 2013 19:49
- Marcado como Resposta Saltador segunda-feira, 21 de outubro de 2013 21:35
-
Saltador,
A minha sugestão seria já no processo de importação, realizar a identificação das colunas com base em seus tamanhos, mapeando as colunas de destino através da função SubString.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
- Marcado como Resposta Saltador sexta-feira, 5 de abril de 2013 15:37
-
Boa tarde Saltador, no seu arquivo de formato, preencha a quinta coluna do FileFormat ( que corresponde ao CARACTER TERMINATOR) com vazio "", e a quarta coluna (que corresponde ao tamanho máximo do campo no arquivo de origem) com o tamanho do campo.
Exemplo para CNPJ:
2 SQLCHAR 0 14 "" 2 NUMERO_CNPJ SQL_Latin1_General_CP1_CI_AS
- Marcado como Resposta Saltador segunda-feira, 21 de outubro de 2013 21:35
Todas as Respostas
-
Saltador, importe tudo em uma única linha e depois trate o dado através de substring. Ou vc pode utilizar o BCP para tal feito.
http://gaurangpatel.net/importing-fixed-position-file-into-sql-server
Abs.
Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp
- Marcado como Resposta Junior Galvão - MVPMVP, Moderator terça-feira, 2 de abril de 2013 13:11
- Não Marcado como Resposta Saltador sexta-feira, 5 de abril de 2013 15:36
- Marcado como Resposta Saltador sexta-feira, 5 de abril de 2013 15:37
- Não Marcado como Resposta Saltador segunda-feira, 21 de outubro de 2013 19:49
- Marcado como Resposta Saltador segunda-feira, 21 de outubro de 2013 21:35
-
Saltador,
A minha sugestão seria já no processo de importação, realizar a identificação das colunas com base em seus tamanhos, mapeando as colunas de destino através da função SubString.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
- Marcado como Resposta Saltador sexta-feira, 5 de abril de 2013 15:37
-
Boa tarde Saltador, no seu arquivo de formato, preencha a quinta coluna do FileFormat ( que corresponde ao CARACTER TERMINATOR) com vazio "", e a quarta coluna (que corresponde ao tamanho máximo do campo no arquivo de origem) com o tamanho do campo.
Exemplo para CNPJ:
2 SQLCHAR 0 14 "" 2 NUMERO_CNPJ SQL_Latin1_General_CP1_CI_AS
- Marcado como Resposta Saltador segunda-feira, 21 de outubro de 2013 21:35