Загрузить данные из xml-файла в БД на SQL Server 2008 #611316


#0 by Триша
Раньше никогда не занималась такой проблемой. Надо загрузить данные из 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 by aleks-id
>> SQLXMLBULKLOADLib.SQLXMLBulkLoad4Class >> Пол: Женский О_О а по теме - конвертни в текст с разделителями и BULK INSERT [BaseName].[dbo].[TableName] FROM 'filename.txt' WITH(DATAFILETYPE='char',FIELDTERMINATOR='символ-разделитель полей')
#2 by Триша
Вот это вот О_О не поняла. Как конвертировать?
#3 by БибиГон
как загружаешь из xml?    <Как конвертировать?    excel вроде умеет.
#4 by Триша
Файл-xml получен из интернета, файлов много, некоторые до 4 гб. Excel такие большие не открывает.
#5 by Irek-kazan
что за изврат, xml файлы по 4 гб? Или вы там весь интернет индексируете и выгружаете?
#6 by Триша
это ФИАС, мы не причем
#7 by Irek-kazan
- курить это
#8 by Триша
ошибку из я победила, теперь другая ошибка: Schema: unable to load schema 'AS_SOCRBASE_2_250_06_04_01_01.xsd'. Но схему-то не я придумала, она должна быть правильная, ее на официальном сайте ФИАС выложили.
#9 by Триша
тема актуальна
#10 by Irek-kazan
#11 by Триша
ага, значит, чтобы работал SQLXMLBULKLOADLib.SQLXMLBulkLoad4Class, нужна схема, сделанная специально для этого SQLXMLBulkLoad, а чтобы сделать такую схему, нужно сначала ее создать из таблицы в бд на sql server, положив в эту таблицу сначала данные, которые у меня есть только в виде файлов xml. ((( засада
#12 by Irek-kazan
именно шулай, или возми одну строку с названиями полей создай в экселе, импортируй в базу с созданием таблицы, а потом выгрузи схему
#13 by Триша
попробую, спасибо, только у меня не все файлы xml открываются.
#14 by Триша
Мда, после допила схемы получилось загрузить небольшой файл с помощью SQLXMLBulkLoad4Class.
#15 by sapphire
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 by sapphire
См OPENXML
#17 by sapphire
Примеры использования:
#18 by sapphire
апну
#19 by sapphire
Автор, тебе и помогло или дальше фигней страдать будешь?
#20 by Триша
пока еще не пробовала. Но почему так категорично "фигней страдать"! Я изучаю разные возможности. С SQLXMLBulkLoad4Class ведь получилось. Можно теперь посмотреть другие варианты, сравнить.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С