sql >> Databáze >  >> RDS >> Oracle

Jak vrátím seznam hodnot místo řetězce při dotazu na databázi Oracle pomocí XPath?

EXTRACT (a EXTRACTVALUE ) jsou zastaralé funkce. Měli byste použít XMLTABLE místo toho:

with sample_data as (select xmltype('<film>
    <title>Godfather, The</title>
    <year>1972</year>
    <directors>
        <director>Francis Ford Coppola</director>
    </directors>
    <genres>
        <genre>Crime</genre>
        <genre>Drama</genre>
    </genres>
    <plot>Son of a mafia boss takes over when his father is critically wounded in a mob hit.</plot>
    <cast>
        <performer>
            <actor>Marlon Brando</actor>
            <role>Don Vito Corleone</role>
        </performer>
        <performer>
            <actor>Al Pacino</actor>
            <role>Michael Corleone</role>
        </performer>
        <performer>
            <actor>Diane Keaton</actor>
            <role>Kay Adams Corleone</role>
        </performer>
        <performer>
            <actor>Robert Duvall</actor>
            <role>Tom Hagen</role>
        </performer>
        <performer>
            <actor>James Caan</actor>
            <role>Sonny Corleone</role>
        </performer>
    </cast>
</film>') x from dual)
select x.*
from   sample_data sd,
       xmltable('/film[title="Godfather, The"]/cast/performer' passing sd.x
                columns actor varchar2(50) path '//actor',
                        role varchar2(50) path '//role') x;

ACTOR                                              ROLE                                              
-------------------------------------------------- --------------------------------------------------
Marlon Brando                                      Don Vito Corleone                                 
Al Pacino                                          Michael Corleone                                  
Diane Keaton                                       Kay Adams Corleone                                
Robert Duvall                                      Tom Hagen                                         
James Caan                                         Sonny Corleone  

(Sloupec role jsem zahrnul pouze pro další informace; tento sloupec byste pouze odstranili ze seznamu sloupců v XMLTABLE část, pokud ji nepotřebujete vidět.)




  1. Jak nastavit každou položku načtenou z databáze SQLite do vlastního Textview

  2. Inteligentní MySQL GROUP BY pro streamy aktivit

  3. Je možné pojmenovat sloupce výsledků SQL z řádků v jiné tabulce? (Postgres)

  4. opatch prereq