Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
uaggster Member Откуда: Сообщений: 960 |
Собственно сабж. MSSQLSERVER 2008 Есть несколько больших xml файлов, ~50Мб размером, которые нужно положить в хмл поле некой таблицы. Есть ли для этого подходящий инструмент? MSDNовский пример: INSERT INTO T(XmlCol) SELECT * FROM OPENROWSET( BULK 'c:\SampleFolder\SampleData3.txt', SINGLE_BLOB) AS x; не подходит, т.к. файл должен лежать на сервере. Файлстрим шару сделать, и помещать файл в filetable, а потом оттуда втыкать в поле таблицы - тоже не вариант. Функционал filetable, афаик в 2012 только появился. Есть инструмент какой-нибудь? Не распарсить xml, а именно поместить большой файл в поле таблицы с клиента. Код на vb.net или c# я в состоянии написать. Но может что-то штатное есть? bcp как нибудь приспособить или ssis. Не могу найти примера. Всё утыкается в итоге в ссылку https://msdn.microsoft.com/ru-ru/library/ms191184(v=sql.120).aspx , см. выше. Хелп, а? |
26 янв 16, 15:58 [18731141] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
А вы как в другие поля других таблиц данные добавляете ? Которые "лежат на клиенте" ? |
||
26 янв 16, 16:00 [18731158] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
Выгрузите через bcp нужное поле нужной записи нужной таблицы Получи формат-файл для этого. Используй измененный формат-файл для другой таблицы |
||
26 янв 16, 16:16 [18731276] Ответить | Цитировать Сообщить модератору |
uaggster Member Откуда: Сообщений: 960 |
Через клиентское приложение или через bcp. Ну или SSIS. Или подцепившись через ODBC из Access, например. Или, если нужно добавить несколько записей - просто написав insert в SSMS. Такая проблема возникает с nvarchar(max) или varbinary(max) (но это редко надо). И вот xml. |
||||
26 янв 16, 16:30 [18731383] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
Ну так я вас удивлю - в поле типа xml данные добавляются точно также
Нет никакой проблемы с этими типами данных |
||||
26 янв 16, 16:37 [18731428] Ответить | Цитировать Сообщить модератору |
uaggster Member Откуда: Сообщений: 960 |
Тогда не могли бы Вы по шагам рассказать, как поместить файл размером 50Мб в поле таблицы с помощью подручных средств? У меня - не получается. Именно об этом я и написал. Итак: Есть таблица: Create table a (n int identity(1,1) primary key clustered, x xml) Есть большой файл xml, такой, что я не могу вставить тело этого файла в varchar константу в SSMS в запросе с insert. Что дальше то? Писать приложение на c#? |
||||||
26 янв 16, 16:45 [18731486] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
insert into mytable (f1) values N'здесь строка хоть на 50мб хоть на 100мб хоть на 2гб....' |
||
26 янв 16, 16:56 [18731607] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
И между прочим в якобы прочитанной вами ссылке на документацию есть пример Г.Указание признаков конца поля явным образом при помощи файла форматирования В следующем примере демонстрируется, как выполнить массовый импорт XML-документа Xmltable.dat. |
||
26 янв 16, 17:12 [18731729] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |