Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Oracle XMLTable — pobieranie kolumny z węzła nadrzędnego

Szukasz ./parent_node , czyli <parent_node> pod bieżący <child> węzeł. A to nie istnieje.

Musisz tylko przejść na wyższy poziom:

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

Demo z Twoim CTE i tylko tym dodanym ../ :

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. Jak sprawdzić format daty sesji Oracle

  2. Pełna replikacja bazy danych MySQL? Pomysły? Co robią ludzie?

  3. Jak w PL/SQL zaktualizować wiersz na podstawie następnego wiersza?

  4. Zamieszanie w strefie czasowej Oracle 10g

  5. Czy dbms_output.put() jest buforowany inaczej niż dbms_output.put_line()?