SQL Server’da XML Oluşturan Fonksiyon Yazmak ve Bu Fonksiyonu Kullanarak Tabloya Veri Eklemek

Herkese merhaba,

Bu yazıda SQL Server’da XML oluşturan fonksiyon yazmak ve bu fonksiyonu kullanarak tabloya veri eklemek ile ilgili bilgi vermeye çalışacağım.

SQL Server’da bazı durumlarda elinizde XML verisi olabilir ve bu XML verisini parse eden bir fonksiyon yazarak tabloya veri ekleme işlemi yapmak isteyebilirsiniz.

İlk önce elimizdeki XML dosyasının aşağıdaki gibi olduğunu düşünelim.

Bu örnekte, “People” adlı bir üst düzey öğe ve “Person” adlı alt öğeleri olan bir XML verisi var. XML verisindeki her bir “Person” öğesi bir tablo satırını temsil eder.

<People>
	<Person>
		<Name>John Smith</Name>
		<Age>35</Age>
		<City>New York</City>
	</Person>
	<Person>
		<Name>Jane Doe</Name>
		<Age>28</Age>
		<City>Los Angeles</City>
	</Person>
</People>

Yukarıdaki XML dosyasını parse eden SQL Server fonksiyonu aşağıdadır. Bu fonksiyonu kendinize göre revize edebilirsiniz. Benim yazmış olduğum basit bir XML dosyası.

Fonksiyon, XML verisini parametre olarak alır ve XML verisindeki her bir “Person” öğesini bir tablo satırı olarak döndürür. Her satırda, “Name”, “Age” ve “City” adlı öğelerin değerleri alınır.

CREATE FUNCTION dbo.ReadXML (@xmlData XML)
RETURNS TABLE
AS
	RETURN
	(
	SELECT
		x.n.value('Name[1]', 'VARCHAR(50)') AS Name
	   ,x.n.value('Age[1]', 'INT') AS Age
	   ,x.n.value('City[1]', 'VARCHAR(50)') AS City
	FROM @xmlData.nodes('/People/Person') x (n)
	)

Bu fonksiyonu kullanarak tabloya veri eklemek için aşağıdaki gibi kodlar yazmalısınız.

CREATE TABLE People (
	ID INT IDENTITY (1, 1) PRIMARY KEY
   ,Name VARCHAR(50)
   ,Age INT
   ,City VARCHAR(50)
)

INSERT INTO People (Name, Age, City)
	SELECT
		Name
	   ,Age
	   ,City
	FROM dbo.ReadXML('<People>
    <Person>
        <Name>John Smith</Name>
        <Age>35</Age>
        <City>New York</City>
    </Person>
    <Person>
        <Name>Jane Doe</Name>
        <Age>28</Age>
        <City>Los Angeles</City>
    </Person>
</People>')

Yukarıdaki fonksiyonu ve tabloyu oluşturup Insert kodlarını çalıştırınca aşağıdakine benzer bir sonuç göreceksiniz.

Görüldüğü üzere XML oluşturan fonksiyon yazıp ve bu fonksiyonu kullanarak tabloya veri eklemiş olduk.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

182 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!