2015-06-16 5 views
2

Я пытаюсь импортировать .txt-файл в Advanced Query Tool (клиент SQL, который я использую). До сих пор у меня есть:Массовая вставка .txt-файла в SQL

CREATE TABLE #tb_test 
(
id INTEGER, 
name varchar(10), 
dob date, 
city char(20), 
state char(20), 
zip integer 
); 

insert into #tb_test 
values 
(1,'TEST','2015-01-01','TEST','TEST',11111) 
; 

bulk insert #tb_test 
from 'h:\tbdata.txt' 
    with 
    (
    fieldterminator = '\t', 
    rowterminator = '\n' 
    ); 

Я получаю сообщение об ошибке, говорящее, что есть ошибка синтаксиса в строке 1. Могу ли я недостающую базу данных, из которой #tb_test приходит (как дб # tb_test.)?

Вот строки из файла tbdata.txt:

2,'TEST2','2012-01-01','TEST','TEST',21111 
+1

Не могли бы вы поместить образцы строки из вашего 'ч: \ tbdata.txt' файл? –

+0

Ваш синтаксис SQL работает! Я думаю, что ошибка находится в 'h: \ tbdata.txt', возможно, неправильные разделители или пробелы, пробелы, ...!? – CeOnSql

+1

Попробуйте заменить «integer» на «int». –

ответ

0

мне было интересно с этим вопросом, и я нашел следующее решение:

Ваши данные разделенные запятой, но вы пытаетесь разделить на TAB два варианта: изменить данные файла, чтобы быть TAB разделенных или Смените fieldterminator = '\t' к fieldterminator = ','

формат DATE имеет проблемы Wh en загрузка непосредственно из файла, мое лучшее решение - изменить временное поле dob, чтобы ввести VARCHAR (20), а затем при переходе к окончательному отображению/хранению данных конвертировать в DATE.

Вот исправленный код:

CREATE TABLE #tb_test 
(
id INTEGER, 
name varchar(10), 
dob varchar(20), 
city char(20), 
state char(20), 
zip integer 
); 

insert into #tb_test 
values 
(1,'TEST','2015-01-01','TEST','TEST',11111) 
; 

bulk insert #tb_test 
from 'h:\tbdata.txt' 
    with 
    (
    fieldterminator = ',', 
    rowterminator = '\n' 
    ); 
+0

Благодарим вас за отзыв. Я уверен, что это работает в SQL Server; однако я использую инструмент Sybase IQ. – blacksite

+0

@ GBR24 Хорошо, я не тестировал его с помощью Sybase. Возможно ли, что даже в Sybase fieldterminator необходимо согласовать файл data.txt с параметрами на объемной вставке? Также найден этот [ссылка] (http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc00462.1510/concepts/con_sqlcode.html) и искали "-131 основная часть». – Pimenta