none
Usando o Bulk RRS feed

  • Pergunta

  • Pessoal estou usando o bulk para ler arquivo txt.

    Porém uma hora funciona outra hora não. Está me dando seguinnte erro:

    Msg 4866, Level 16, State 1, Line 1

    The bulk load failed. The column is too long in the data file for row 1, column 3. Verify that the field terminator and row terminator are specified correctly.

    Msg 7399, Level 16, State 1, Line 1

    The OLE DB provider "BULK" for linked server "(null)" reported an error. The provider did not give any information about the error.

    Msg 7330, Level 16, State 2, Line 1

    Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)".

     

    Meu fonte é:

    CREATE

     

    TABLE DBO.

    TB_BULK

     

     

    (

    DATA_VENC

    VARCHAR(50

    ),

    YIELD

    VARCHAR(50

    ),

    FATOR_DV

    VARCHAR(50

    )

     

     

    )

     

     

     

    BULK INSERT

    TB_BULK

     

    FROM

    'C:\PROJETO\ARQUIVOS_TAXAS\TAXAS_PRÉ.TXT'

     

    WITH (FIRSTROW = 1

    ,

     

    FIELDTERMINATOR = ';'

    ,

     

    ROWTERMINATOR ='\N'

    ,

     

    CODEPAGE=

    'OEM'

     

    );

     

    Porque está dando esse erro? Eu estava usando e está alimentando a tabela normalmente.

     
    segunda-feira, 30 de janeiro de 2012 14:03

Respostas

  • Esta duvida não seria a mesma dessa? http://social.msdn.microsoft.com/Forums/pt-BR/520/thread/085e4f9d-093f-45d8-bf95-66d8c0dd54f7 Abçs
    • Marcado como Resposta Harley Araujo quarta-feira, 1 de fevereiro de 2012 13:25
    segunda-feira, 30 de janeiro de 2012 15:42

Todas as Respostas

  • Verifique se os campos do txt estão corretamente delimitados. As vezes alguma linha do seu arquivo txt está com problemas de delimitação.

    Vc pode utilizar o argumento maxerrors e errorFile. Desta forma ele irá importar o arquivo todo e irá reportar no arquivo definido no errorFile as linhas problemáticas.

    Abs.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp
    segunda-feira, 30 de janeiro de 2012 14:31
  • Não mexi em absolutamente mada e deu certo.

    Valeu de qualquer forma.

    segunda-feira, 30 de janeiro de 2012 14:48
  • Aacabei de executar novamente e não funcionou. Não mexi em absolutamente nada.

    Só queria saber pq uma hora e outra hora não. Me gerou o seguinte log: Row 1 File Offset 0 ErrorFile Offset 0 - HRESULT 0x80004005.

    Parou em uma dterminada linha. Porém, a linha está como todas as outras.

     

    • Editado rafa-martin segunda-feira, 30 de janeiro de 2012 14:56
    segunda-feira, 30 de janeiro de 2012 14:52
  • Não funcionou com o mesmo arquivo que havia funcionado?
    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp
    segunda-feira, 30 de janeiro de 2012 14:54
  • então funcionou. mais aí eu deletei os registros da tabela e executei novamente, aí não funcionou.

    Não entendo porquie uma hora funciona e outra não.

    Vi openrowset até rola, mais o sql entende que a primeira linda do arquivo são colunas. Como posso mudar isso? Segue abaixo o codigo.

    SELECT * FROM OPENROWSET
    ('MSDASQL',
    'Driver={Microsoft Text Driver (*.txt; *.csv)};
    DefaultDir=C:\;Extended properties="ColNameHeader=True;Format=Delimited;"',
    'SELECT * FROM arquivo.TXT')

     

     

    segunda-feira, 30 de janeiro de 2012 15:12
  • SELECT * FROM OPENROWSET
    ('MSDASQL',
    'Driver={Microsoft Text Driver (*.txt; *.csv)};
    DefaultDir=C:\;Extended properties="ColNameHeader=false;Format=Delimited;"',
    'SELECT * FROM arquivo.TXT')
    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp
    segunda-feira, 30 de janeiro de 2012 15:23
  • Esta duvida não seria a mesma dessa? http://social.msdn.microsoft.com/Forums/pt-BR/520/thread/085e4f9d-093f-45d8-bf95-66d8c0dd54f7 Abçs
    • Marcado como Resposta Harley Araujo quarta-feira, 1 de fevereiro de 2012 13:25
    segunda-feira, 30 de janeiro de 2012 15:42