2015-04-26 4 views
1

У меня есть файл XML, который показывает данные, как это:Отображение данных XML в таблицы SQL

<learner> 
    <name>Smith</name> 
    <ULN>123456</ULN> 
</learner> 
<learner> 
    <name>Jones</name> 
    <ULN>56789</ULN> 
</learner> 

У меня есть таблица, в которой хранятся файлы как VARCHAR (макс), как я не могу загрузить непосредственно в XML с моего фронта конечной системы.

Я могу прочитать файл как файл XML путем создания таблицы:

declare @ILRDATA table (Data xml) 

Insert into @ILRDATA (Data) 
select FileUpload from ILRDATA.dbo.ILRUpload 

select * from @ILRDATA 

Теперь я хочу, чтобы создать @table с колоннами (Name VARCHAR (50), ULN VARCHAR (10))

Я хочу, чтобы затем заполнить это с данными XML

Может кто-то пожалуйста, помогите мне, прежде чем я тратить целый день, пытаясь понять это.

Благодаря

+0

Пожалуйста, проверьте это [ссылка] (http://stackoverflow.com/questions/4815836/how-do-you-read-xml-column-in-sql-server-2008) , я думаю, он содержит то, что вы хотите. – Majdi

+0

вы говорите, что вы не хотите использовать тип данных SQL Server XML? –

ответ

2
select 
    t.c.value('name[1]', 'nvarchar(50)') as name, 
    t.c.value('ULN[1]', 'nvarchar(10)') as ULN 
from @ILRDATA as d 
    outer apply d.Data.nodes('learner') as t(c) 
+0

Привет, Роман. Я просто получаю одну строку с нулевым значением в каждом столбце. Когда я заменяю файл FileUpload от ILRDATA.dbo.ILRUpload с фактическими данными, я получаю отображение данных, но это не помогает, поскольку фактически загруженный файл изменится. – gillers322

+0

вот скрипта SQL с примером - http://sqlfiddle.com/#!6/8a9fc/2. Пожалуйста, проверьте, что данные в FileUpload точно такие же, что вы указали в вопросе –

 Смежные вопросы

  • Нет связанных вопросов^_^