Usuário com melhor resposta
Usando o Bulk

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
TB_BULK
(
DATA_VENC
VARCHAR(50),
YIELD
VARCHAR(50),
FATOR_DV
VARCHAR(50)
)
TB_BULK
'C:\PROJETO\ARQUIVOS_TAXAS\TAXAS_PRÉ.TXT'
,
,
,
'OEM'
Porque está dando esse erro? Eu estava usando e está alimentando a tabela normalmente.
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
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 -
-
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
-
-
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') -
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 -
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