ANOMALI XML GENERATOR ORACLE

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 off

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

Anonim | 5 Agustus 2009 pukul 22.59

Hardware by Marvel, Software by Oracle, Administration by Ario.

regards,

Tak gendong kemana-mana..