none
Importação com Bulk Insert RRS feed

  • 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 tbTeste

    FROM '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
    sábado, 7 de fevereiro de 2009 03:56

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
    segunda-feira, 9 de fevereiro de 2009 12:48

Todas as Respostas

  • Fala Galera,

    Alguem poderia me ajudar?


    Daniel
    segunda-feira, 9 de fevereiro de 2009 12:21
  • 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
    segunda-feira, 9 de fevereiro de 2009 12:48
  • 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
    segunda-feira, 9 de fevereiro de 2009 12:52
  • Junior,

    conseguiu ver alguma coisa?
    Daniel
    segunda-feira, 9 de fevereiro de 2009 16:06
  •  Galera,

    Alguem pode me ajudar?
    Daniel
    segunda-feira, 9 de fevereiro de 2009 18:31
  • DrAlves,

    Mas qual seria a condição para tentarmos analisar o porque um registro vai e o outro não?
    Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA
    segunda-feira, 9 de fevereiro de 2009 18:33
  • Cara não sei.  É uma caracteristica do arquivo. Não teria alguma maneira de colocar o caracter " | " com terminador de linha também?
    Daniel
    segunda-feira, 9 de fevereiro de 2009 18:55
  • 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
    terça-feira, 10 de fevereiro de 2009 11:43
  • Júnior,

    Essa thread está duplicada.

    Abraços
    Demétrio Silva
    terça-feira, 10 de fevereiro de 2009 11:52
  • Já tentei apagar a anterior mais não consegui. Isso ocorreu porque não estava conseguindo visualizar os meus post.
    Daniel
    terça-feira, 10 de fevereiro de 2009 11:55
  • Minhas dicas na outra thread não ajudaram?

    Abraços
    Demétrio Silva
    terça-feira, 10 de fevereiro de 2009 11:58
  • Demétrio,

     Não é o mesmo erro.


    Daniel
    terça-feira, 10 de fevereiro de 2009 12:10