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

Bagaimana Anda mengurai cuplikan XML sederhana di Oracle PL/SQL dan memuatnya di tabel temp global?

Implementasi XML DB Oracle memiliki sejumlah opsi yang membingungkan, dan tidak selalu jelas (setidaknya bagi saya) mana yang berlaku dalam skenario apa pun. Dalam kasus khusus ini yang Anda inginkan adalah judul XMLTable() , yang mengubah XQuery menjadi sekumpulan baris.

Pertama kita buat tabel.

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

Table created.

SQL>

Lalu kita isi...

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>

Akhirnya kami buktikan berhasil....

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. ORA-00942:tabel atau tampilan tidak ada untuk tabel dan kolom kasus campuran

  2. java.sql.SQLException:I/O Error:Koneksi ulang di server linux

  3. Kesalahan SQL:ORA-02291:batasan integritas

  4. Oracle:Saya perlu memilih n baris dari setiap k baris tabel

  5. Bagaimana cara mengekspor data dengan Oracle SQL Developer?