DB2 XML basic

XML merupakan salah satu standar yang sering digunakan. DB2 mendukung penyimpanan data XML secara native sehingga tidak membuang waktu untuk melakukan parsing terlebih dahulu. Oleh karena itu, mengetahui cara-cara menggunakan XML di DB2 cukup berguna.

Berikut ini saya mencoba untuk menjelaskan langkah-langkah dari membuat table XML, melakukan operasi insert, update dan delete, serta yang paling penting, bagaimana cara mengambil data XML.

1. Buat table yang memiliki kolom XML

CREATE TABLE ADMINISTRATOR.PRODUK ( ID CHARACTER (3)  NOT NULL, DESC XML  , CONSTRAINT CC1293001926375 PRIMARY KEY (ID)  ) ;

2. Misalnya kita memiliki file xml yang berisi data sebagai berikut
<produk>
<elektronik>
<id>1</id>
<nama> Samsung TV </nama>
<harga> 100000 </harga>
<desc> Samsung TV berkualitas tinggi </desc>
</elektronik>
<elektronik>
<id>2</id>
<nama> Samsung LCD </nama>
<harga> 150000 </harga>
<desc> Toshiba LCD dengan 3D </desc>
</elektronik>
</produk>

3. Insert data dengan perintah berikut
insert into produk values (’100′,’<produk>
<elektronik>
<id>1</id>
<nama> Samsung TV </nama>
<harga> 100000 </harga>
<desc> Samsung TV berkualitas tinggi </desc>
</elektronik>
<elektronik>
<id>2</id>
<nama> Samsung LCD </nama>
<harga> 150000 </harga>
<desc> Toshiba LCD dengan 3D </desc>
</elektronik>
</produk>’)

4. Misalnya kita ingin mengupdate data XML yang ada, Samsung LCD menjadi seharga 200000.
update produk set desc = ‘<produk>
<elektronik>
<id>1</id>
<nama> Samsung TV </nama>
<harga> 100000 </harga>
<desc> Samsung TV berkualitas tinggi </desc>
</elektronik>
<elektronik>
<id>2</id>
<nama> Samsung LCD </nama>
<harga> 200000 </harga>
<desc> Toshiba LCD dengan 3D </desc>
</elektronik>
</produk>’ where ID=’100′

5. Berikut merupakan bagian yang tersulit yaitu mendapatkan data. Di DB2 disediakan yg namanya XQuery untuk meretrieve data. XQuery ini syntaxnya berbeda dari SQL yang sering kita gunakan sehari-hari. Namun jika sudah terbiasa, tentunya akan menjadi mudah.
xquery for $y in db2-fn:xmlcolumn(‘PRODUK.DESC’)/produk/elektronik/nama/text() return $y
xquery for $y in db2-fn:xmlcolumn(‘PRODUK.DESC’)/produk/elektronik[id=1]/nama/text() return $y

This entry was posted in DB2 and tagged , , , , , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>