Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Große Datenmengen effizient mit SQL einfügen

Verwenden Sie externe Oracle-Tabellen.

Siehe auch z.B.

  • OraFaq über externe Tabellen
  • Was Tom über externe Tabellen denkt
  • René Nyffeneggers Anmerkungen zu externen Tabellen

Ein einfaches Beispiel, das Ihnen den Einstieg erleichtern sollte

Sie benötigen eine Datei, die sich in einem Serververzeichnis befindet (machen Sie sich mit Verzeichnisobjekten vertraut):

SQL> select directory_path from all_directories where directory_name = 'JTEST';

DIRECTORY_PATH
--------------------------------------------------------------------------------
c:\data\jtest

SQL> !cat ~/.gvfs/jtest\ on\ 192.168.xxx.xxx/exttable-1.csv
1,a
3,bsdf
4,sdkfj
5,something
129,else

Erstellen Sie eine externe Tabelle:

create table so13t (
  id number(4),
  data varchar2(20)
)
organization external (
  type oracle_loader
  default directory jtest /* jtest is an existing directory object */
  access parameters (
    records delimited by newline
    fields terminated by ','
    missing field values are null
  )
  location ('exttable-1.csv') /* the file located in jtest directory */
)
reject limit unlimited;

Jetzt können Sie alle Möglichkeiten von SQL nutzen um auf die Daten zuzugreifen:

SQL> select * from so13t order by data;

        ID DATA
---------- ------------------------------------------------------------
         1 a
         3 bsdf
       129 else
         4 sdkfj
         5 something