hasti44
یک شنبه 16 مهر 1391, 18:54 عصر
من میخواهم پروسیجری بنویسم که ورودی اش xml باشه انرا تجزیه و تحلیل کنه و خروجی یک تیبل باشه
فقط هم قراره تو sql کار کنم
لطفا راهنمایی کنید
hasti44
دوشنبه 17 مهر 1391, 10:42 صبح
این کد
ALTER procedure [dbo].[convertToTable]
as
DECLARE @tempTable TABLE
( userId INT, userName NVARCHAR(50), password NVARCHAR(50) )
DECLARE @xml XML SET
@xml=' <row userId="67" userName="Ali" password="1234" />
<row userId="80" userName="Maryam" password="5678" />'
INSERT INTO @tempTable SELECT Tbl.Col.value('@userId', 'INT'), Tbl.Col.value('@userName', 'NVARCHAR(50)'),
Tbl.Col.value('@password', 'NVARCHAR(50)') FROM @xml.nodes('//row') Tbl(Col)
SELECT * FROM @tempTable
به صورت دستی فرمت xml رو قبول میکنه ولی من میخواهم ورودی پروسیجرم xml باشه این جور که مینویسم
ALTER procedure [dbo].[convertToTable2]
@XmlFile as xml
as
DECLARE @tempTable TABLE
( userId INT, userName NVARCHAR(50), password NVARCHAR(50) )
INSERT INTO @tempTable SELECT Tbl.Col.value('@userId', 'INT'),
Tbl.Col.value('@userName', 'NVARCHAR(50)'),
Tbl.Col.value('@password', 'NVARCHAR(50)') FROM @xmlFile.nodes('//row') Tbl(Col)
SELECT * FROM @tempTable
نمیدونم مسیر فایلxml رو چه طوری بدم که خروجی درست بده؟؟؟؟؟؟؟؟؟!!!
اینجوری هم باز خروجی پروسیجر صفره
ALTER procedure [dbo].[convertToTable2]
as
DECLARE @XmlPath xml
set @XmlPath='I:\XmlTest.xml'
DECLARE @tempTable TABLE
( userId INT, userName NVARCHAR(50), password NVARCHAR(50) )
INSERT INTO @tempTable SELECT Tbl.Col.value('@userId', 'INT'),
Tbl.Col.value('@userName', 'NVARCHAR(50)'),
Tbl.Col.value('@password', 'NVARCHAR(50)') FROM @xmlPath.nodes('//row') Tbl(Col)
SELECT * FROM @tempTable
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.