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

Jak przeanalizować prosty fragment kodu XML w Oracle PL/SQL i załadować go do globalnej tabeli tymczasowej?

Implementacja Oracle XML DB ma szczerze oszałamiającą liczbę opcji i nie zawsze jest jasne (przynajmniej dla mnie), która z nich ma zastosowanie w danym scenariuszu. W tym konkretnym przypadku żądany jest tytuł XMLTable() , który zamienia XQuery w zestaw wierszy.

Najpierw tworzymy tabelę.

SQL> create table t23
  2      (field01 number
  3       , field02 number
  4       , field03 char(1)
  5       )
  6  /

Table created.

SQL>

Następnie wypełniamy go ...

SQL> declare
  2      x varchar2(2000) := '<ArrayOfRecords>
  3                        <Record Field01="130" Field02="1700" Field03="C" />
  4                        <Record Field01="131" Field02="1701" Field03="C" />
  5                        <Record Field01="132" Field02="1702" Field03="C" />
  6                   </ArrayOfRecords>';
  7  begin
  8      insert into t23
  9      select *
 10      from xmltable
 11          ( '/ArrayOfRecords/Record'
 12             passing xmltype (x)
 13             columns f1 number path '@Field01'
 14                     , f2 number path '@Field02'
 15                     , f3 char(1) path '@Field03'
 16          )
 17      ;
 18  end;
 19  /

PL/SQL procedure successfully completed.

SQL>

Wreszcie udowodniliśmy, że zadziałało....

SQL> select * from t23
  2  /

   FIELD01    FIELD02 F
---------- ---------- -
       130       1700 C
       131       1701 C
       132       1702 C

SQL>



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle ORA-01031:niewystarczające uprawnienia podczas tworzenia użytkownika

  2. jak używać dbms_scheduler do uruchamiania zadania co 30 minut

  3. Oracle APEX — Tabela przeglądowa z kilkoma łączami

  4. Jak usunąć pliki dziennika archiwum z instancji AWS RDS Oracle?

  5. Jak uzyskać starszą wersję OracleClient do lokalnej pracy z platformą .NET?