IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Программирование (http://www.imho.ws/forumdisplay.php?f=40)
-   -   Вопрос по mssql: импорт csv в переменную типа table (http://www.imho.ws/showthread.php?t=145012)

owlman 20.12.2010 19:41

Вопрос по mssql: импорт csv в переменную типа table
 
Вопрос по mssql: как осуществить импорт из файла csv в переменную типа table?
Ситуация: есть ms.sql.2008, файл csv (много строк текста с разделителями, т.е. таблица). Необходима процедура, способная поместить содержимое csv файла в переменную типа table, для дальнейшего построчного анализа.
Танцы с бубном вокруг select, insert, bulk и даже подключение файла через линкед сервер не помогают. Кто может подсказать или предложить реально проверенный работающий код?
ps: Варианты использования временных таблиц прошу не предлагать.

Hubbitus 20.12.2010 21:09

http://blog.sqlauthority.com/2008/02...to-sql-server/
http://haveyougotwoods.com/archive/2...-csv-data.aspx
http://huddledmasses.org/importing-c...o-ms-sql-2005/
Не?

owlman 20.12.2010 21:31

спасибо, но это не то...
в приведенных статьях идет речь о таблицах. мне же нужно работать с переменной типа table

owlman 21.12.2010 12:49

В процессе поиска информации выяснилось, что переменная типа table создается в tempdb. Поэтому, проанализировав вот эти статьи
http://en.w3support.net/index.php?db=so&id=27894
http://databases.aspfaq.com/database...-variable.html
было принято решение использовать временные таблицы, т.к. в моем случае возможное количество строк в csv превышает рекомендуемую 1000.
2. Тем не менее, чтобы закрыть вопрос, на основе советов iljy было реализовано следующее решение (используя связанные сервера):
а. создан связанный сервер:
exec sp_addlinkedserver
@server = 'csv',
@provider = 'MSDASQL',
@srvproduct = '',
@provstr = 'Driver={Microsoft Text Driver (*.txt; *.csv)};DefaultDir=c:\import_csv\;'
б. написана процедура:
declare @csvfile table (id_csv int, name_csv varchar(50))
insert @csvfile
select * from openquery (csv, 'select * from [file.csv]') csv;
select * from @csvfile


Часовой пояс GMT +4, время: 22:46.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.