powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Текстовые файл *.txt -> SQL Server
8 сообщений из 8, страница 1 из 1
Текстовые файл *.txt -> SQL Server
    #32075567
DM.PROFF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Система сбора статистики каждый час формирует выходной текстовый файл. Первая строка - наименование столбцов, последующие строки - данные. Причём, КОЛИЧЕСТВО СТОЛБЦОВ может время от времени изменяться. Поэтому создавать заранее таблицу, в которую будут копироваться данные, не имеет смысла, потому что такие фичи как BCP, BULK INSERT и т.д. переносят данные в существующую таблицу. Задача: необходимо каким-то образом автоматически создать таблицу и скопировать в неё данные.
...
Рейтинг: 0 / 0
Текстовые файл *.txt -> SQL Server
    #32075587
СергейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Используй DTS, например, в Enterprise Manager. Именно для таких случаев это и предназначено
...
Рейтинг: 0 / 0
Текстовые файл *.txt -> SQL Server
    #32075621
vap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BULK INSERT - решает вашу задачу.

Код: plaintext
1.
2.
3.
if NOT(object_id('TempDb..#temp') IS NULL) DROP TABLE #temp
CREATE TABLE #temp (line varchar( 4000 ))
BULK INSERT #temp FROM 'c:\boot.ini'
select * from #temp
...
Рейтинг: 0 / 0
Текстовые файл *.txt -> SQL Server
    #32075638
DM.PROFF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
To vap.
Дело в том, что в таблице #temp я получаю построчную копию файла, а мне надо создать таблицу с неизвестным заранее количеством полей , в которой имена полей находятся в первой строке файла (поля разделены символом табуляции).
...
Рейтинг: 0 / 0
Текстовые файл *.txt -> SQL Server
    #32075643
vap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В любом случае ваш парсер дожен знать структуру, или генерите файлы в формате XML.
Можно строки пропарсить по разделителям.
SQL сервер достаточно быстро работает со строками.
У меня получалось закачивать со скоростью около 1000 строк/сек.
...
Рейтинг: 0 / 0
Текстовые файл *.txt -> SQL Server
    #32075658
dkstranger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я подобные вещи решаю динамическим запросом

типа

declare @sss varchar(500)

if @object_id(@tbl) is null begin
select @sss='create table '+LTRIM(RTRIM(@tbl))+'( id int'
select @sss=LTRIM(RTRIM(@sss))+', ff moey '
--- далее сервер формирует определение таблицы
select @sss=LTRIM(RTRIM(@sss))+') '
exec(@sss)
end
...
Рейтинг: 0 / 0
Текстовые файл *.txt -> SQL Server
    #32076869
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если у вас действительно выполняются следующие условия
"формирует выходной текстовый файл. Первая строка - наименование столбцов, последующие строки - данные" плюс поля разделены стандартным delimiter-ом, то я бы предложил использовать linked server хоть бы с Jet.OLEDB Provider. Тогда можно делать выборки вида
SELECT * FROM mylinkedtxtsrv...myfile#txt

Единственная "особенность" в том, что Jet.OLEDB Provider может неправильно определять типы данных в столбцах, т.к. делает это сканируя N первых строк файла. Но эту проблему можно обойти создав файл schema.ini
...
Рейтинг: 0 / 0
Текстовые файл *.txt -> SQL Server
    #32076877
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DTS ?
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Текстовые файл *.txt -> SQL Server
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]