Sql FOR XML PATH Nedir ? Nerelerde Kullanılır ?
For XML PATH Nedir ? Neden kullanılır , Kolondaki verileri nasıl tek satırda gösterebilirim gibi soruların cevaplarına bakacağız.
FOR XML path tablo verilerinizi xml formatınıza çevirmek için kullanılacak araç veya komut diyebiliriz, birde fazla sistem arası haberleşen bir yazılımınız var ise Sql Serverdan farklı platformlara veri aktarımı için kullanabileceğiniz bir standarttır. Bunlara ek birden fazla satırda olan verilerinizi tek satırda kullanabilmek için, Kolondaki verileri tek satırda göstermek amacıyla gayet kullanışlı bir araçtır. Otomatik hiyerarşiye göre bize xml fomatı üretebilmemize yarar.
Örnek vermek gerekir ise ;
Ürün listesini tuttuğumuz bir tablomuz bulunsun
select
ItemCode as Urun_Kodu,
CreatedDate as Olusturulma_Zamani,
ItemTaxGrCode as Vergi_Kodu from cdItem
bu tabloda Ürün kodu,vergi dilimi ve oluşturulma tarihi yer alsın , normal bir select sorgusunda satır satır bu ürünler listelenecektir sorgumuza for xml path ekleyerek çekelim ve çıkan sonuca bakalım.
select
ItemCode as Urun_Kodu,
CreatedDate as Olusturulma_Zamani,
ItemTaxGrCode as Vergi_Kodu from cdItem
FOR XML PATH(‘Ürünler’),ELEMENTS,ROOT(‘Liste’)
<Lokasyon>
<urunler>
<Urun_Kodu>00001</Urun_Kodu>
<Olusturulma_Zamani>2019-05-23T11:40:11.790</Olusturulma_Zamani>
<Vergi_Kodu>%8</Vergi_Kodu>
</urunler>
<urunler>
<Urun_Kodu>00003</Urun_Kodu>
<Olusturulma_Zamani>2019-05-23T11:40:11.270</Olusturulma_Zamani>
<Vergi_Kodu>%8</Vergi_Kodu>
</urunler>
<urunler>
<Urun_Kodu>00004</Urun_Kodu>
<Olusturulma_Zamani>2019-05-23T11:40:12.107</Olusturulma_Zamani>
<Vergi_Kodu>%8</Vergi_Kodu>
</urunler>
<urunler>
<Urun_Kodu>00005</Urun_Kodu>
<Olusturulma_Zamani>2019-05-23T11:40:12.607</Olusturulma_Zamani>
<Vergi_Kodu>%8</Vergi_Kodu>
</urunler>
Göreceğiniz üzere bize satırları bir xml formatında tek hücrede vermiş oldu.
Bir diğer kullanım alanı olan verileri tek satırda birleştiren koda bakalım , satır satır olan ürün kodlarını tek satırda nasıl görebiliriz onu inceleyelim.
İlk sorguda ürünler satır satır gelirken , sağdaki sorguda tek satırda gelmektedir , for xml path(‘ ‘) yaparak root’umuzu boşluk olarak ayarlamış olduk data ilede veriyi dizi halinde elde ettik , devamında isterseniz replace() fonksiyonu ile boşluklara farklı bir formatta verebilirsiniz.