Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Dari XML ke daftar jalur di lingkungan Oracle PL/SQL

Anda dapat menggunakan XMLTable untuk menghasilkan daftar jalur dengan XQuery.

Misalnya.

(SQLFiddle )

with params as (
  select 
    xmltype('
      <ALFA>
        <BETA>0123</BETA>
        <GAMMA>2345</GAMMA>
        <DELTA>
           <EPSILON>3</EPSILON>
        </DELTA>
      </ALFA>
    ') p_xml
  from dual  
)    
select
  path_name || '/text()'
from
  XMLTable(
    '
      for $i in $doc/descendant-or-self::*
        return <element_path> {$i/string-join(ancestor-or-self::*/name(.), ''/'')} </element_path>
    '
    passing (select p_xml from params) as "doc"
    columns path_name varchar2(4000) path '//element_path'
  )

tapi itu cara yang salah setidaknya karena tidak seefektif mungkin.

Cukup ekstrak semua nilai dengan XQuery yang sama:(SQLFiddle )

with params as (
  select 
    xmltype('
      <ALFA>
        <BETA>0123</BETA>
        <GAMMA>2345</GAMMA>
        <DELTA>
           <EPSILON>3</EPSILON>
        </DELTA>
      </ALFA>
    ') p_xml
  from dual  
)    
select
  element_path, element_text
from
  XMLTable(
    '              
      for $i in $doc/descendant-or-self::*
        return <element>
                 <element_path> {$i/string-join(ancestor-or-self::*/name(.), ''/'')} </element_path>
                 <element_content> {$i/text()}</element_content>
               </element>  
    '
    passing (select p_xml from params) as "doc"
    columns 
      element_path   varchar2(4000) path '//element_path',
      element_text   varchar2(4000) path '//element_content'
  )



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. jalankan kode sql oracle online

  2. Bagaimana saya bisa memantau aktivitas SQL di Oracle?

  3. Pl/Sql Pemicu untuk mengubah format tanggal default di oracle

  4. Apakah ada cara untuk membuat ulang paket ODI menggunakan Skenario ODI?

  5. Oracle - permutasi kombinatorial string