Rastgele Yazılar : Oracle Sequence Nedir? Bilinmeyen Detaylarıyla
Rastgele Yazılar : ODI da Proje Oluşturma(Creating Integration Project)
Rastgele Yazılar : Tablo Taşıma işlemi
Rastgele Yazılar : Unix İşletim Sistemi Dosyaları Görüntüleme
Rastgele Yazılar : Tabloların Sıkıştırılması
Rastgele Yazılar : Oracle Sga Yapısı
Rastgele Yazılar : Oracle 'start' ve 'shutdown' aşamaları
Rastgele Yazılar : SAP (System Applications and Products)
Rastgele Yazılar : PL-SQL (ORACLE) Fonksiyonları / Decode, NVL, NVL2
Rastgele Yazılar : Oracle Enterprise Data Quality Kurulum ve Proje Oluştur...
Oracle Table'lardan veriyi XML formunda çekme
CREATE TABLE DBT
(
NUM NUMBER,
ADI VARCHAR2(14),
SOYADI VARCHAR2(22),
TAR DATE
);
Şeklinde bir tablo oluşturalım.
Şimdi de tablomuza aşağıdaki kayıtları ekleyelim.
Insert into DBT
(NUM, ADI, SOYADI,TAR)
Values
(1, 'Ercan', 'Yazgan', trunc(sysdate));
(NUM, ADI, SOYADI)
(2, 'yusuf', 'Arslan', trunc(sysdate));
(3, 'Samet', 'Aslan',trunc(sysdate));
Tabloya bir bakalım :)
select * from dbtable
Num Ad Soyad Tar
----- ------ ------- -------------
1 Ercan Yazgan 21/12/2010
2 yusuf Arslan 21/12/2010
3 Samet Aslan 21/12/2010
Şimdi gelelim kuru fasulyenin faydalarına :) Biz bu var olan veriyi xml formunda görmek istiyoruz. Nerede kullanıldığına gelince; örnek olarak web service ile çalışan projelerde veriyi göndermek için xml formu kullanılır ve data transferi yapabilmek için datayı xml formuna sokmak gerekir. Bunun için biraz xml nedir gibi bir sorunun cevabını da vermek gerektiğini şu an hissettim :)
Xml bir veri taşıma formudur diyebiliriz. XML herhangi bir programlama dili veya bir script dil değildir.
Sadece, verinin platformlar arası anlaşılır, basit ve ortak bir görünümde taşınabilmesini sağlayan bir formdur. Mesela "Personel" adlı bi tablomuzda adı ve soyadı kolonları olsun. Hangi veritabanında tutarsak tutalım bilgisayar bu datanın aşağıdaki şekilde oldugunu anlamaz.
Personel
Adı Soyadı
---- ---------
Ercan Yazgan
Yani Veri formunu kendi kendine çözemez, adı : ercan soyadı : yazgan oldugunu sınıflayamaz. Fakat bu veri şu formda olduğu zaman tüm kaynaklar, veriyi anlayabilir ve sınıflayabilir :
ercan
yazgan
İşte bu xml formu görüldüğü gibi veriyi belli bir sınıf kapsamında hiyerarşiye sokuyor.
XML in ne oldugundan kısaca bahsettikten sonra lafı fazla uzatmadan konuya döneyim. Yukarıda oluşturduğumuz tablonun datasını xml formuyla çekmek için basitçe aşağıdaki kodu sorgulayabiliriz :
select xmlelement("xml_formu",
xmlforest(d.NUM, d.ADI, d.SOYADI, d.TAR)
)
from dbtable d;
--Gelen sonuç :
1
Ercan
Yazgan
2010-12-21
2
yusuf
Arslan
3
Samet
Aslan
Burada bir konuya daha değinmek istiyorum, xmlelement herbir satırı bir element olarak görmek için kullanılır yani hersatırı başlıklamak gibi düşünebiliriz. Yoksa şu şekilde de bir sorgu yazabiliriz :
select xmlforest(d.NUM, d.ADI, d.SOYADI, d.TAR)
--sonuç :
<NUM>1NUM>
<ADI>ErcanADI>
<SOYADI>YazganSOYADI>
<TAR>2010-12-21TAR>
<NUM>2NUM>
<ADI>yusufADI>
<SOYADI>ArslanSOYADI>
<NUM>3NUM>
<ADI>SametADI>
<SOYADI>AslanSOYADI>
Şeklinde gelecektir.
Umarım faydalı olmuştur, bir sonraki yazımda ise xml formundaki bir stringin içerisinden veriyi parse edip tabloya aktarmakla ilgili bir bilgi paylaşıyor olacağım.