Usuário com melhor resposta
Insert Bulk com varios tipos de Terminator

Pergunta
-
Ola Pessoal, me ajudem com uma dúvida, estou tentando subir os dados com insert bulk com a seguinte FIELDTERMINATOR e ROWTERMINATOR , porém da erro (erro de conversão dos dados de carregamento em massa (truncamento) na linha 1), comando abaixo:
BULK INSERT INPUTSAP..INPUT FROM 'C:\Users\lucia\Desktop\INPUT\ZT042.csv'
WITH
(
FIELDTERMINATOR = '0',
ROWTERMINATOR = '\\'
)
;Pois o arquivo que estou tentando vem direto do SAP, e ele está com o seguinte demilitador \. Alguém já pegou um cenário desse?
Obrigado.
Respostas
-
Luciano,
Se realmente estas seis últimas colunas não possuem dados, tente omitir as mesmas no processo de importação, uma possibilidade seria criar a tabela sem estas colunas e após a importação realizar a criação das mesmas.
Assim você já poderia eliminar algumas possibilidades de erro no processo de carga.
Pedro Antonio Galvao Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
- Marcado como Resposta Filipe B CastroModerator quarta-feira, 31 de janeiro de 2018 17:59
Todas as Respostas
-
Deleted
- Sugerido como Resposta Junior Galvão - MVPMVP terça-feira, 23 de janeiro de 2018 17:05
-
Ola José, obrigado pelo retorno.
Utilizei esse FIELDTERMINATOR também e não está subindo o arquivo, da o erro:
Mensagem 4866, Nível 16, Estado 1, Linha 104
Falha no carregamento em massa. A coluna é longa demais no arquivo de dados, na linha 1, coluna 75. Verifique se o terminador de campo e da linha estão especificados corretamente.
Mensagem 7399, Nível 16, Estado 1, Linha 104
O provedor do OLE DB "BULK" para o servidor vinculado "(null)" reportou um erro. O provedor não forneceu informações sobre o erro.
Mensagem 7330, Nível 16, Estado 2, Linha 104
Não é possível buscar uma linha no provedor do OLE DB "BULK" para o servidor vinculado "(null)".Mesmo eu criando a tabela e deixando tudo como VARCHAR, exemplo abaixo, criei toda tabela:
CREATE TABLE INPUT..ZT042INPUT
(
CANAL_DISTRIBUICAO VARCHAR(20),
DOCUMENTO_SD VARCHAR(20),
ITEM VARCHAR(20),
TIPO_DOCVENDA VARCHAR(20),
NOMEVENDEDOR VARCHAR(50),
CODIGO_VENDEDOR VARCHAR(50),
DATA_CRIACAO_1 VARCHAR(50),
MATERIAL VARCHAR(50),
DENOMINACAO_1 VARCHAR(50),
PLANO VARCHAR(50),
KIT VARCHAR(50),
DENOMINACAO_2 VARCHAR(50),
DESCONTO_OFFER VARCHAR(50),
QTDE_COMPARTILHAMENTO VARCHAR(50),
VALOR_CONDICAO VARCHAR(50),
DENOMINACAO_3 VARCHAR(50),
CAMPANHA_BONUS VARCHAR(50),
CAMPANHA VARCHAR(50),
CODIGO_FORMA VARCHAR(50),
CODIGO_RESGATE_CLAROCLUBE VARCHAR(50),
NOME_AUTORIZADA VARCHAR(50),
CLIENTE VARCHAR(50),
CODIGO_DBM VARCHAR(50),
NOME_1 VARCHAR(50),
SEXO VARCHAR(50),
ESTADO_CIVIL_1 VARCHAR(50),
ESTADO_CIVIL_2 VARCHAR(50),
DATA_NASCIMENTO VARCHAR(50),
EMAIL VARCHAR(50),
DESCRICAO VARCHAR(50),
DEPENDENTE VARCHAR(50),
CONDICAO_PAGAMENTO VARCHAR(50),
ORGANOZACAO_VENDAS VARCHAR(50),
ESCRITORIOS_VENDAS VARCHAR(50),
REGIAO VARCHAR(50),
LOCAL VARCHAR(50),
DATA_CRIACAO_2 VARCHAR(50),
STATUS_ORDEM VARCHAR(255),
DENOMINACAO_4 VARCHAR(50),
JUSTIFICATIVA_AN_RISCO VARCHAR(50),
MOTIVO_REC_AN_RISCO VARCHAR(50),
MOTIVO_CANCELAMENTO VARCHAR(255),
MOTIVO_ANALISE_SEGUNDONIVEL VARCHAR(50),
MOTIVO_ATUALIZADO_DADOS VARCHAR(50),
MOTIVO_ATUALIZADO_DADOS_2 VARCHAR(50),
MOTIVO_REANALISE_SEGUNDONIVEL VARCHAR(50),
RUA_1 VARCHAR(255),
LOCAL_RESIDENCIAL_DIFERENTE VARCHAR(50),
BAIRRO_1 VARCHAR(255),
CODIGO_POSTAL_1 VARCHAR(50),
NOME VARCHAR(255),
RUA_2 VARCHAR(255),
BAIRRO_2 VARCHAR(255),
CODIGO_POSTAL_2 VARCHAR(255),
ZONA_TRANSPORTE VARCHAR(255),
NOME_ACORDO_CARTAO VARCHAR(50),
TELEFONE_FIXO VARCHAR(50),
TELEFONE_CONTATO_1 VARCHAR(50),
TELEFONE_CONTATO_2 VARCHAR(50),
TELEFONE_CONTATO_3 VARCHAR(50),
DDD VARCHAR(50),
MATRICULA_CLIENTE VARCHAR(50),
CPF_CLIENTE VARCHAR(50),
AGRUPADOR_EPS VARCHAR(50),
CODIGO_EPS VARCHAR(255),
NOME_EPS VARCHAR(255),
COLUMN_VAZIA VARCHAR(255),
QTDE_PARCELAS VARCHAR(50),
BONUS VARCHAR(50),
RECARGA_MINIMA VARCHAR(50),
BONUS_TOTAL VARCHAR(50),
CARACTERE VARCHAR(50),
ORDEM_ORIGEM VARCHAR(50),
LOGIN_O_ORIGEM VARCHAR(50),
LOGIN_O_DESTINO VARCHAR(50)
)
;
GODepois rodei o processo do Insert abaixo:
TRUNCATE TABLE INPUT..ZT042INPUT;
BULK INSERT INPUT.dbo.ZT042INPUT FROM 'C:\Users\92030421\Desktop\SAP\ZT042_01012018_23012018.csv'
WITH
(
FIELDTERMINATOR = '\\'
);
GOApós todo esse processo ele indica que a ultima coluna está "Verifique se o terminador de campo e da linha estão especificados corretamente", as 6 ultimas colunas dessa base estão nulas.
-
Luciano,
Tente especificar o RowTerminator.
Pedro Antonio Galvao Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
-
-
-
Luciano,
Se realmente estas seis últimas colunas não possuem dados, tente omitir as mesmas no processo de importação, uma possibilidade seria criar a tabela sem estas colunas e após a importação realizar a criação das mesmas.
Assim você já poderia eliminar algumas possibilidades de erro no processo de carga.
Pedro Antonio Galvao Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
- Marcado como Resposta Filipe B CastroModerator quarta-feira, 31 de janeiro de 2018 17:59
-
Boa tarde,
Por falta de retorno essa thread está encerrada.
Se necessário favor abrir uma nova thread.
Atenciosamente,Filipe B de Castro
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.