Query untuk Oracle XMLType


Melanjutkan dari artikel yang pernah saya tulis tentang Oracle XML DB, kali ini saya coba mendokumentasikan tentang pemakaian 3 fungsi yang dapat kita gunakan untuk mengambil nilai dari suatu XMLType:

  • Untuk melakukan query terhadap nilai elemen dari suatu XMLType di Oracle, kita bisa menerapkan XPath dengan memanggil fungsi EXTRACTVALUE().
SQL> select extractvalue(ponsel.SYS_NC_ROWINFO$, '//ponsel/merk/text()') merk from ponsel;

MERK
-------------------
SE 710
N78

SQL> select sum(extractvalue(p.SYS_NC_ROWINFO$, '//ponsel/harga/text()')) total
from ponsel p;

TOTAL
----------
675

SQL> select sum(extractvalue(p.SYS_NC_ROWINFO$, '//ponsel/harga/text()')) total
from ponsel p
where lower(extractvalue(p.SYS_NC_ROWINFO$, '//ponsel/produsen/text()')) like '%nokia%';

TOTAL
----------
335
  • fungsi EXTRACT() dapat kita gunakan untuk mengambil suatu elemen tertentu:
SQL> select p.SYS_NC_ROWINFO$.extract('//ponsel/harga') harga from ponsel p;
HARGA
-----------------------------------
340
335
  • kita juga dapat mengecek apakah suatu elemen XML ada atau tidak dengan menggunakan fungsi EXISTSNODE().
SQL> select *
from ponsel p
where existsnode(p.SYS_NC_ROWINFO$, '//ponsel/merk') != 0;
Semoga contoh sederhana ini dapat memberi gambaran tentang query terhadap dokumen XMLType di Oracle.

One thought on “Query untuk Oracle XMLType

Komentar ditutup.