PDA

View Full Version : انتقال داده های XML به جدول



یوسف زالی
چهارشنبه 06 مهر 1390, 00:22 صبح
با سلام.
کسی می دونه چه شکلی می شه داده های فرمت XML رو که در متغیری نگهداری میشه به شکل جدولی اون در آورد؟
یعنی اینسرت بشه در جدول
ممنون

sanay_esh
چهارشنبه 06 مهر 1390, 01:30 صبح
سلام یه مثال برای ورود کلی داده از فایل xml to sql
CREATE TABLE XmlImportTest
(
xmlFileName VARCHAR(300),
xml_data xml
)
GO

DECLARE @xmlFileName VARCHAR(300)
SELECT @xmlFileName = 'c:\TestXml.xml'
-- dynamic sql is just so we can use @xmlFileName variable in OPENROWSET
EXEC('
INSERT INTO XmlImportTest(xmlFileName, xml_data)

SELECT ''' + @xmlFileName + ''', xmlData
FROM
(
SELECT *
FROM OPENROWSET (BULK ''' + @xmlFileName + ''' , SINGLE_BLOB) AS XMLDATA
) AS FileImport (XMLDATA)
')
GO
SELECT * FROM XmlImportTest

DROP TABLE XmlImportTest


:خجالت:تشکر یادت نره

یوسف زالی
پنج شنبه 07 مهر 1390, 00:13 صبح
تا حدی با X-Query آشنا هستم اما نمی خوام فیلد به فیلد برخورد کنم.
دوست من sanay_esh (http://barnamenevis.org/member.php?42384-sanay_esh) در مورد OpenRowSet و پارامتر هاش اگر کمی بیشتر بگی ممنون می شم.

niloofar norouzi
جمعه 08 مهر 1390, 15:26 عصر
سلام
شاید این مثال کمکتون کنه


Declare @Xml Xml
Set @Xml= N'<Customer ID="78" FirstName="John" LastName="Nash" />'
Select @Xml.value('(./Customer/@ID)[1]', 'BigInt') As ID,
@Xml.value('(./Customer/@FirstName)[1]', 'nVarchar(50)') As FirstName,
@Xml.value('(./Customer/@LastName)[1]', 'nVarchar(50)') As LastName