Usuário com melhor resposta
Importação com Bulk Insert

Pergunta
-
Amigos,
estou tentando carregar uma tabela através do Bulk Insert da seguinte maneira:
Criei um arquivo txt:
UF|ANOMES_REF|MEIO_ACESSO
RJ|200809|33906672|
Criei um arquivo de . FMT
9.0
3
1 SQLCHAR 0 0 "|" 1 UF SQL_Latin1_General_CP1_CI_AS
2 SQLCHAR 0 0 "|" 2 ANOMES_REF SQL_Latin1_General_CP1_CI_AS
3 SQLCHAR 0 0 "\r\n" 3 MEIO_ACESSO SQL_Latin1_General_CP1_CI_AS
E estou executando o seguinte comando que está me dando o seguinte erro:
ERRO:Msg 4864, Level 16, State 1, Line 1
Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 2, column 3 (MEIO_ACESSO).
Comando:
BULK
INSERT tbTesteFROM
'C:\Documents and Settings\Daniel\My Documents\teste.txt'WITH
(FORMATFILE = 'C:\Documents and Settings\Daniel\My Documents\teste.fmt', ROWTERMINATOR = '|\n', FIRSTROW = 2 );GO
select
* from tbTeste
Alguem saberia dizer o que estou fazendo de errado?
Desde já agradeço
Daniel
Respostas
-
DrAlves,
Você esta tendo problemas para fazer a importação dos dados, verificando a mensagem de erro, esta ocorrendo uma falha para realizar a conversão dos dados, na coluna MEIO_ACESSO.
Que tipo de dado você esta tentando gravar nesta coluna?
Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA- Marcado como Resposta dralves terça-feira, 10 de fevereiro de 2009 13:13
Todas as Respostas
-
-
DrAlves,
Você esta tendo problemas para fazer a importação dos dados, verificando a mensagem de erro, esta ocorrendo uma falha para realizar a conversão dos dados, na coluna MEIO_ACESSO.
Que tipo de dado você esta tentando gravar nesta coluna?
Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA- Marcado como Resposta dralves terça-feira, 10 de fevereiro de 2009 13:13
-
Junior eu descobri o pq do erro. O problema está nao ultimo caracter do arquivo. Existe situações que eu terei ou não o Pipe(|) no final do arquivo onde ele deveria pular a linha. vide arquivo abaixo
UF;ANOMES_REF;MEIO_ACESSO
RJ;200809;44406672
ES;200809;98989899|
Ou seja o registro do RJ é importado e o do ES não. Portanto preciso saber como tratar a existencia ou não do PIPE no final da linha para o ultimo campo.
Desde já agradeço
Daniel -
-
-
-
-
Consegui alterar o layout do arquivo no momento da exportação. Porém o erro agora é esse:
Msg 4862, Level 16, State 1, Line 1
Cannot bulk load because the file "D:\FIXA_PA_PI_RN_SE\ou.fmt" could not be read. Operating system error code (null).
Alguem tem ideia? Já validei a permissão da pasta e tá legal. Apesar de que eu sou ADM da máquina e do banco(O arquivo em questão e o banco estão na minha máquina)
Aguardo retorno
Daniel -
-
-
-