Loading…

جزیره بانک های اطلاعاتی

ارسال کننده: حسین احمدی
حسین احمدی ، بنیانگذار TOSINSO ، توسعه دهنده وب و برنامه نویس ، بیش از 12 سال سابقه فعالیت حرفه ای در سطح کلان ، مشاور ، مدیر پروژه و مدرس نهادهای مالی و اعتباری ، تخصص در پلتفرم دات نت و زبان سی شارپ ، طراحی و توسعه وب ، امنیت نرم افزار ، تحلیل سیستم های اطلاعاتی و داده کاوی ...
ارسال پیام خصوصی
امتیازات این مطلب
نکته: باز کردن فایل های XML در SQL Server بوسیله OPENROWSET
یکی از قابلیت های SQL Server کار کردن با مستندات XML هست، یعنی شما می توانید خروجی کوئری ها را تبدیل به مستندات XML کرده یا یک فایل XML را خوانده و محتویات آن را پردازش کنید. در این نکته قصد داریم تا با نحوه باز کردن یک فایل XML و پردازش آن آشنا شویم. فرض کنید که فایل XML شما با نام data.xml و در درایو D ذخیره شده و شامل محتویات زیر است:

<Customers>
	<Customer Id="1">
		<FirstName>Hossein</FirstName>
		<LastName>Ahmadi</LastName>
		<Address Zipcode="1111111111">
			<Country>Iran</Country>
			<State>Alborz</State>
			<City>Karaj</City>
		</Address>
	</Customer>
	<Customer Id="2">
		<FirstName>Mohammad</FirstName>
		<LastName>Nasiri</LastName>
		<Address Zipcode="2222222222">
			<Country>Iran</Country>
			<State>Alborz</State>
			<City>Mohammad Shahr</City>
		</Address>
	</Customer>
</Customers>

جهت باز کردن این فایل شما باید ابتدا یک متغیر از نوع xml تعریف کرده و بعد بوسیله عبارت OPENROWSET فایل مورد نظر را باز کنید و محتویات آن را در متغیر تعریف شده ذخیره کنید:

declare @xmlDoc xml;
select @xmlDoc = p from OPENROWSET(BULK'd:\data.xml',SINGLE_BLOB) as T(P);
select @xmlDoc;

با اجرای اسکریپت بالا محتویات فایل XML بوسیله دستور select در خروجی نمایش داده می شود. در ادامه می توان متغیر xmlDoc را در عبارت OPENXML برای پردازش محتویات آن استفاده کرد:

declare @xmlDoc xml;
select @xmlDoc = p from OPENROWSET(BULK'd:\data.xml',SINGLE_BLOB) as T(P);

declare @handler int;
exec sp_xml_preparedocument @handler out,@xmlDoc;

select
	*
from
	openxml(@handler,'Customers/Customer/Address')
	with
	(
		[FirstName] nvarchar(200) '../FirstName',
		[ZipCode] nvarchar(10) '@Zipcode',
		[Country] nvarchar(200) 'Country'
	)

البته از openrowset برای باز کردن فایل های دیگر هم می توان استفاده کرد که استفاده آن مشابه اسکریپتی است که در ابتدای نکته گفته شد. ITpro باشید

نویسنده: حسین احمدی
منبع: ITpro
دیدگاه ها

هیچ دیدگاهی برای این مطلب ارسال نشده است

برای ارسال نظر وارد شوید.

Countdown