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

Oracle XMLTable- mengambil kolom dari node induk

Anda mencari ./parent_node , yang merupakan <parent_node> di bawah <child> saat ini simpul. Dan itu tidak ada.

Anda hanya perlu naik satu level:

parent_value NUMBER (10) PATH './../parent_value'

Demo dengan CTE Anda dan hanya menambahkan ../ :

WITH xtbl AS (SELECT xmltype ('<root>
                    <parent>
                         <parent_id>1</parent_id>
                         <parent_value>10000</parent_value>
                         <child>
                              <child_id>11</child_id>
                              <other_value>1000</other_value>
                         </child>
                         <child>
                              <child_id>12</child_id>
                              <other_value>1000</other_value>
                         </child>
                    </parent>
                </root>') AS xcol FROM dual)
      SELECT myXmlTable.*
        FROM xtbl
             CROSS JOIN
             xmltable ('/root/parent/child'
                       PASSING xcol
                       COLUMNS child_id NUMBER (5) PATH 'child_id',
                               parent_value NUMBER (10) PATH './../parent_value') myXmlTable;

  CHILD_ID PARENT_VALUE
---------- ------------
        11        10000
        12        10000


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-00937:Bukan fungsi grup grup tunggal - Kesalahan kueri

  2. Dapatkan kata setelah kata tertentu menggunakan regexp_substr di sql oracle

  3. ORA-00984:kolom tidak diizinkan di sini

  4. Bagaimana cara mengubah zona waktu di oracle?

  5. Unitils dan DBMaintainer - bagaimana membuatnya bekerja dengan banyak pengguna/skema?