Kemarin team Nirwana ke SPC lagi untuk menyelesaikan tahap sinkronisasi. Seperti biasa, aku bertugas untuk membantu mba Ita menyelesaikan aplikasi Generate XML dari data spasial yang disimpan pada database Oracle. Jika kemarin menggunakan sys_xmlgen() untuk menghasilkan xml dari satu kolom. Maka kali ini, saya mencoba menggenerate seluruh kolom menjadi XML. Hal ini tidak bisa dilakukan dengan menggunakan sys_xmlgen(). Oleh karena itu, saya buat file batch untuk mengeksekusi query xml generator. Berikut ini file batch dan query-nya.
save.bat
sqlplus spasial/spasial@orcl @D:ariobatchquery.sql
query.sql
set linesize 1060; set pagesize 1000; set long 1000 ; set heading off; set serveroutput off; set feedback off; declare coba clob; begin coba:= DBMS_XMLQuery.GetXML('select * from JALAN where ROWID in (SELECT M_ROW$$ FROM MLOG$_JALAN)'); dbms_output.put_line(coba); end; / set serveroutput on; spool D:xmlxml_JALAN26022008-194859.xml / spool offdan inilah salah satu contoh file XML yang dihasilkan:
<?xml version = '1.0'?>
<ROWSET>
<ROW num="1">
<KD_PRO>31</KD_PRO>
<KD_KAB>71</KD_KAB>
<KD_KCM>010</KD_KCM>
<KD_KLH>001</KD_KLH>
<ID_JLN>31</ID_JLN>
<NM_JLN>GG.BUNTU</NM_JLN>
<LOG>Ok1</LOG>
<MI_PRINX>31</MI_PRINX>
<GEOLOC>
<SDO_GTYPE>2002</SDO_GTYPE>
<SDO_SRID>8307</SDO_SRID>
<SDO_POINT>
<X>0</X>
<Y>0</Y>
</SDO_POINT>
<SDO_ELEM_INFO>
<SDO_ELEM_INFO_ITEM>1</SDO_ELEM_INFO_ITEM>
<SDO_ELEM_INFO_ITEM>2</SDO_ELEM_INFO_ITEM>
<SDO_ELEM_INFO_ITEM>1</SDO_ELEM_INFO_ITEM>
</SDO_ELEM_INFO>
<SDO_ORDINATES>
<SDO_ORDINATES_ITEM>106.77790008</SDO_ORDINATES_ITEM>
<SDO_ORDINATES_ITEM>-6.27282198</SDO_ORDINATES_ITEM>
<SDO_ORDINATES_ITEM>106.77790296</SDO_ORDINATES_ITEM>
<SDO_ORDINATES_ITEM>-6.27280398</SDO_ORDINATES_ITEM>
<SDO_ORDINATES_ITEM>106.77791088</SDO_ORDINATES_ITEM>
<SDO_ORDINATES_ITEM>-6.27255504</SDO_ORDINATES_ITEM>
<SDO_ORDINATES_ITEM>106.77791484</SDO_ORDINATES_ITEM>
<SDO_ORDINATES_ITEM>-6.27239304</SDO_ORDINATES_ITEM>
</SDO_ORDINATES>
</GEOLOC>
</ROW>
</ROWSET>
Disinilah letak anomaly dari generator XML-nya Oracle. Jika dibandingkan dengan XML hasil dari sys_xmlgen(), maka dapat dilihat adanya perbedaan. Berikut ini hasil sys_xmlgen().
Query: Select sys_xmlgen(geoloc) from jalan where rownum=1;
<?xml version="1.0"?>
<GEOLOC>
<SDO_GTYPE>2002</SDO_GTYPE>
<SDO_SRID>8307</SDO_SRID>
<SDO_POINT>
<X>0</X>
<Y>0</Y>
</SDO_POINT>
<SDO_ELEM_INFO>
<NUMBER>1</NUMBER>
<NUMBER>2</NUMBER>
<NUMBER>1</NUMBER>
</SDO_ELEM_INFO>
<SDO_ORDINATES>
<NUMBER>106.77938004</NUMBER>
<NUMBER>-6.27357996</NUMBER>
<NUMBER>106.77938112</NUMBER>
<NUMBER>-6.27353496</NUMBER>
<NUMBER>106.77938292</NUMBER>
<NUMBER>-6.27340302</NUMBER>
<NUMBER>106.77938292</NUMBER>
<NUMBER>-6.27322896</NUMBER>
<NUMBER>106.77938292</NUMBER>
<NUMBER>-6.27312897</NUMBER>
</SDO_ORDINATES>
</GEOLOC>
Jika dilihat ada perbedaan format XML yang dihasilkan, hal ini mungkin dapat menyebabkan konsistensi format XML tidak dapat dipertahankan. Mungkin ada yang ingin memberi pencerahan??
1 komentar:
Hardware by Marvel, Software by Oracle, Administration by Ario.
regards,
Tak gendong kemana-mana..
Posting Komentar