Oracle
 sql >> Database >  >> RDS >> Oracle

Inserisci grandi quantità di dati in modo efficiente con SQL

Usa tabelle esterne Oracle.

Vedi anche ad es.

  • OraFaq sulle tabelle esterne
  • Cosa pensa Tom delle tabelle esterne
  • Note di René Nyffenegger sui tavoli esterni

Un semplice esempio per iniziare

Hai bisogno di un file che si trova in una directory del server (acquisisci familiarità con gli oggetti directory):

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

Crea una tabella esterna:

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;

Ora puoi utilizzare tutti i poteri di SQL per accedere ai dati:

SQL> select * from so13t order by data;

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