Home / MAKALELER / Veri Tabanı / Oracle XML-1

Oracle XML-1

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));

Insert into DBT

(NUM, ADI, SOYADI)

Values

(2, ‘yusuf’, ‘Arslan’, trunc(sysdate));

Insert into DBT

(NUM, ADI, SOYADI)

Values

(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 :

 

<Personel>

<adı>ercan</adı>

<soyadı>yazgan</soyadı>

</Personel>

 

İş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ç :

 

<xml_formu>

<NUM>1</NUM>

<ADI>Ercan</ADI>

<SOYADI>Yazgan</SOYADI>

<TAR>2010-12-21</TAR>

</xml_formu>

<xml_formu>

<NUM>2</NUM>

<ADI>yusuf</ADI>

<SOYADI>Arslan</SOYADI>

<TAR>2010-12-21</TAR>

</xml_formu>

<xml_formu>

<NUM>3</NUM>

<ADI>Samet</ADI>

<SOYADI>Aslan</SOYADI>

<TAR>2010-12-21</TAR>

</xml_formu>

 

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)

from dbtable d;

 

–sonuç :

 

<NUM>1</NUM>

<ADI>Ercan</ADI>

<SOYADI>Yazgan</SOYADI>

<TAR>2010-12-21</TAR>

<NUM>2</NUM>

<ADI>yusuf</ADI>

<SOYADI>Arslan</SOYADI>

<TAR>2010-12-21</TAR>

<NUM>3</NUM>

<ADI>Samet</ADI>

<SOYADI>Aslan</SOYADI>

<TAR>2010-12-21</TAR>

 

Ş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.

 

About Ercan Yazgan

Oracle Technologies Specialist Yalova Doğumluyum, İlköğretimimi İstanbulda, Lise eğitimini ise memleketim olan Gümüşhane'de Anadolu Lisesinde tamamladım. Lisans eğitimimi ise Sakarya Üniversitesinde, hayalim olan bilgisayar mühendisliğinde tamamladım. Üniversitedeyken kariyer hedefimi database teknolojileri üzerine belirledim ve Oracle ile projeler geliştirdim. Her zaman yeniye ve yeniliğe olan ilgimden dolayı lisans projemde ODI ve OBIEE teknolojilerini kullanarak veri ambarı sistemlerine giriş yaptım. Şu an özel bir şirkette PLSQL developer olarak çalışmaktayım. İlgi alanlarım ve bildiğim teknolojiler; PLSQL, Oracle forms/reports, Oracle Administration

İlginizi Çekebilir

SQL Server ile Veri Şifreleme

Bilgi teknolojilerinde verinin güvenliği çok kritik bir öneme sahiptir. Önemli verileri korumak için ekstra bir …

Bir Cevap Yazın