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

Oracle:načítání velkého souboru xml?

K XML souborům na serveru můžete přistupovat přes SQL. S vašimi daty v /tmp/tmp.xml byste nejprve deklarovali adresář:

SQL> create directory d as '/tmp';

Directory created

Poté můžete přímo dotazovat svůj soubor XML:

SQL> SELECT XMLTYPE(bfilename('D', 'tmp.xml'), nls_charset_id('UTF8')) xml_data
  2    FROM dual;

XML_DATA
--------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<badges>
  [...]

Pro přístup k polím ve vašem souboru můžete použít metodu popsanou v jiném SO, například:

SQL> SELECT UserId, Name, to_timestamp(dt, 'YYYY-MM-DD"T"HH24:MI:SS.FF3') dt
  2    FROM (SELECT XMLTYPE(bfilename('D', 'tmp.xml'), 
                            nls_charset_id('UTF8')) xml_data
  3            FROM dual),
  4         XMLTable('for $i in /badges/row
  5                              return $i'
  6                  passing xml_data
  7                  columns UserId NUMBER path '@UserId',
  8                          Name VARCHAR2(50) path '@Name',
  9                          dt VARCHAR2(25) path '@Date');

    USERID NAME       DT                         
---------- ---------- ---------------------------
      3718 Teacher    2008-09-15 08:55:03.923    
       994 Teacher    2008-09-15 08:55:03.957    


  1. Oracle IN vs Existuje rozdíl?

  2. Vytvoření seznamu hodnot oddělených čárkami v příkazu Oracle SQL

  3. Jak kombinovat datum z jednoho pole s časem z jiného pole - MS SQL Server

  4. Jak vyplnit řetězec úvodními/koncovými znaky v MySQL – LPAD(), RPAD()