Note that there are some explanatory texts on larger screens.

plurals
  1. POOracle XML : Skip Not exist Node
    primarykey
    data
    text
    <p>I have a problem proceed xml data to insert in oracle table, here is my xml :</p> <pre><code>&lt;begin&gt; &lt;entry&gt; &lt;lastname&gt;gordon&lt;/lastname&gt; &lt;NumberList&gt; &lt;number&gt;100&lt;/number&gt; &lt;codelist&gt; &lt;code&gt;213&lt;/code&gt; &lt;codelist&gt; &lt;NumberList&gt; &lt;address&gt; &lt;addresslist&gt;Jl. jalan pelan-pelan ke Bekasi, Indonesia&lt;/addresslist&gt; &lt;/address&gt; &lt;/entry&gt; &lt;entry&gt; &lt;lastname&gt;mark&lt;/lastname&gt; &lt;address&gt; &lt;addresslist&gt;Jl. jalan cepet-cepet ke Jakarta, Indonesia&lt;/addresslist&gt; &lt;/address&gt; &lt;/entry&gt; &lt;/begin&gt; </code></pre> <p>What result I expected is :</p> <pre><code>LastName | Number | code | address gordon | 100 | 213 |Jl. jalan pelan-pelan ke Bekasi, Indonesia mark | Null | Null |Jl. jalan cepet-cepet ke Jakarta, Indonesia </code></pre> <p>When accessing not exist node, 1 row data will not appear ( like second row data).</p> <p>Update : here's my current code</p> <pre><code> DECLARE X XMLTYPE := XMLTYPE(' &lt;begin&gt; &lt;entry&gt; &lt;lastname&gt;gordon&lt;/lastname&gt; &lt;NumberList&gt; &lt;number&gt;100&lt;/number&gt; &lt;codelist&gt; &lt;code&gt;213&lt;/code&gt; &lt;/codelist&gt; &lt;/NumberList&gt; &lt;address&gt; &lt;addresslist&gt;Jl. jalan pelan-pelan ke Bekasi, Indonesia&lt;/addresslist&gt; &lt;/address&gt; &lt;/entry&gt; &lt;entry&gt; &lt;lastname&gt;mark&lt;/lastname&gt; &lt;address&gt; &lt;addresslist&gt;Jl. jalan cepet-cepet ke Jakarta, Indonesia&lt;/addresslist&gt; &lt;/address&gt; &lt;/entry&gt; &lt;/begin&gt;'); BEGIN FOR R IN (SELECT EXTRACTVALUE(VALUE(P), '/entry/lastname/text()') AS lastname, EXTRACTVALUE(VALUE(P), '/entry/address/addresslist/text()') AS address, EXTRACT(VALUE(P), '/entry/NumberList') AS NumberList FROM TABLE(XMLSEQUENCE(EXTRACT(X, '//begin/entry'))) P) LOOP FOR R1 IN (SELECT EXTRACTVALUE(VALUE(T1), 'NumberList/number/text()') AS numbers, EXTRACTVALUE(VALUE(T1), 'NumberList/codelist/code/text()') AS code FROM TABLE(XMLSEQUENCE(EXTRACT(R.NumberList, '/NumberList'))) T1) LOOP DBMS_OUTPUT.PUT_LINE(r.lastname||' | '||R1.numbers||' | '||R1.code||' | '||r.address); END LOOP; END LOOP; END; </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload