|
Загрузить данные из xml-файла в БД на SQL Server 2008 | ☑ | ||
---|---|---|---|---|
0
Триша
18.05.12
✎
09:10
|
Раньше никогда не занималась такой проблемой.
Надо загрузить данные из xml-файла в таблицу БД на SQL Server 2008. Написала процедуру. Ошибка "Error connecting to the data source" в последней строке. SQLXMLBULKLOADLib.SQLXMLBulkLoad4Class bl = new SQLXMLBULKLOADLib.SQLXMLBulkLoad4Class(); bl.ConnectionString = "Provider=SQLOLEDB; Data Source=АА-SQL; Initial Catalog=DVP; User ID=РРРР\\хххх; Password=456456456"; bl.SchemaGen = true; bl.SGDropTables = true; bl.KeepNulls = true; bl.Transaction = true; //bl.ErrorLogFile = "R:\\апап\\вава\\укук\\ук\\XMLDocForBulkLoad.err"; Object vDataFile = "R:\\апап\\вава\\укук\\ук\\AS_SOCRBASE_20120307_c6125d29-dbfe-49bb-bb19-3c7f58a6589a.xml"; bl.Execute("R:\\апап\\вава\\укук\\ук\\AS_SOCRBASE_2_250_06_04_01_01.xsd", vDataFile); Что я сделала не так? |
|||
1
aleks-id
18.05.12
✎
09:16
|
>> SQLXMLBULKLOADLib.SQLXMLBulkLoad4Class
>> Пол: Женский О_О а по теме - конвертни в текст с разделителями и BULK INSERT [BaseName].[dbo].[TableName] FROM 'filename.txt' WITH(DATAFILETYPE='char',FIELDTERMINATOR='символ-разделитель полей') |
|||
2
Триша
18.05.12
✎
09:32
|
(1) Вот это вот О_О не поняла.
Как конвертировать? |
|||
3
БибиГон
18.05.12
✎
09:36
|
(2) как загружаешь из xml?
<Как конвертировать? excel вроде умеет. |
|||
4
Триша
18.05.12
✎
09:41
|
(3) Файл-xml получен из интернета, файлов много, некоторые до 4 гб. Excel такие большие не открывает.
|
|||
5
Irek-kazan
18.05.12
✎
09:48
|
что за изврат, xml файлы по 4 гб? Или вы там весь интернет индексируете и выгружаете?
|
|||
6
Триша
18.05.12
✎
09:49
|
(5) это ФИАС, мы не причем
|
|||
7
Irek-kazan
18.05.12
✎
09:56
|
||||
8
Триша
18.05.12
✎
11:17
|
ошибку из (0) я победила, теперь другая ошибка: Schema: unable to load schema 'AS_SOCRBASE_2_250_06_04_01_01.xsd'.
Но схему-то не я придумала, она должна быть правильная, ее на официальном сайте ФИАС выложили. |
|||
9
Триша
18.05.12
✎
12:39
|
тема актуальна
|
|||
10
Irek-kazan
18.05.12
✎
12:42
|
||||
11
Триша
18.05.12
✎
13:20
|
(10) ага, значит, чтобы работал SQLXMLBULKLOADLib.SQLXMLBulkLoad4Class, нужна схема, сделанная специально для этого SQLXMLBulkLoad, а чтобы сделать такую схему, нужно сначала ее создать из таблицы в бд на sql server, положив в эту таблицу сначала данные, которые у меня есть только в виде файлов xml. ((( засада
|
|||
12
Irek-kazan
18.05.12
✎
13:21
|
(11) именно шулай, или возми одну строку с названиями полей создай в экселе, импортируй в базу с созданием таблицы, а потом выгрузи схему
|
|||
13
Триша
18.05.12
✎
13:29
|
(12) попробую, спасибо, только у меня не все файлы xml открываются.
|
|||
14
Триша
21.05.12
✎
16:13
|
Мда, после допила схемы получилось загрузить небольшой файл с помощью SQLXMLBulkLoad4Class.
|
|||
15
sapphire
21.05.12
✎
16:17
|
declare @doc XML
declare @idoc int select @doc= (SELECT top 1 BulkColumn FROM OPENROWSET(BULK '{filename.xml}',SINGLE_BLOB) AS x) exec sp_xml_preparedocument @idoc OUTPUT,@doc SELECT * FROM OPENXML (@idoc,'{XPath}') WITH( {Поле} {тип} {XPath}) |
|||
16
sapphire
21.05.12
✎
16:22
|
||||
17
sapphire
21.05.12
✎
16:23
|
Примеры использования:
http://msdn.microsoft.com/ru-ru/library/ms187897.aspx |
|||
18
sapphire
21.05.12
✎
17:37
|
апну
|
|||
19
sapphire
22.05.12
✎
01:38
|
(0) Автор, тебе (16) и (17) помогло или дальше фигней страдать будешь?
|
|||
20
Триша
22.05.12
✎
08:39
|
(19) пока еще не пробовала. Но почему так категорично "фигней страдать"! Я изучаю разные возможности. С SQLXMLBulkLoad4Class ведь получилось. Можно теперь посмотреть другие варианты, сравнить.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |