Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > SQL и обработка текста


Автор: Lomir 23.5.2008, 01:26
Сложилась такая ситуция. 
В базе данных (MS SQL 2005) есть поля типа Image, в ней храниться текстовой *.csv файл, в котором есть нескольно записей (по 4 поля в каждой). Так же есть stored procedure по которой генериреться отчет.

Теперь мне нужно каким-то образом пропарсить этот файл T-SQL'ом в процедуре, чтобы на основании данных в нем решить что вносить в отчет. Раньше данные дублировались в базе связями во время анализа и добавления нового файла програмой на с#. Но как оказалось дублировались неправильно.

Может у кого нибуть есть какие нибуть примеры или ссылки как работать с текстовыми файлом в T-SQL?

Автор: Magnifico 26.5.2008, 19:51

Код

---создаем линкед сервер для папки C:\MySrv в ней тхт файлы
EXEC sp_addlinkedserver MySrv, 'Jet 4.0',
'Microsoft.Jet.OLEDB.4.0',
'C:\MySrv',
NULL,
'Text'
--вставляем в файл:  file.txt  значения
--поля fname,sname,lname долны быть предварительно созданы в файле file.txt через ; (fname;sname;lname))
insert into MySrv...file#txt(fname,sname,lname)
select 'Николай','Степанович','Иванов' union all
select 'Петр','Сергеевич','Козлов' union all
select 'Виктор','Понтелемонович','Белов'

--cчитываем
select * from OpenRowset('MSDASQL', 'Driver={Microsoft Text Driver (*.txt; *.csv)};FIELDTERMINATOR=;
DefaultDir=C:\MySrv;','select * from file.txt')

--удалям линкед сервер если больше ненужен
sp_dropserver MySrv


предварительные настройки
Код

sp_configure 'show advanced options',1
go
reconfigure
go
sp_configure 'Ad Hoc Distributed Queries' ,1
go
reconfigure
go

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)