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

Esempio di tabella esterna Oracle

Un uso comune di una tabella esterna è la selezione di dati da un file CSV (flat) OS tramite SQL *Plus. Quando si utilizza una tabella esterna in questa modalità, è necessario specificare il tipo di dati nel file e la modalità di organizzazione dei dati. È possibile selezionare da una tabella esterna ma non è consentito modificarne il contenuto (nessun inserimento, aggiornamento o eliminazione).

La funzionalità tabella esterna Oracle consente di eseguire due operazioni distinte:

  • Seleziona in modo trasparente le informazioni dai file CSV (comma-separated-value) del sistema operativo tramite SQL, che ti consente di eseguire attività come il caricamento di questi file nel database.
  • Crea file di dump indipendenti dalla piattaforma che possono essere utilizzati per trasferire i dati. Puoi anche creare questi file compressi e crittografarli per un trasporto dei dati efficiente e sicuro

In questo esempio il file flat è denominato ex.csv e si trova nella directory D:Extbl. Contiene i seguenti dati:5|2|0|0|12/04/2012|Half6|1|0|1|09/06/2013|Trimestre7|4|0|1|08/10/2013|Full8| 1|1|0|15/06/2013|QuarterFirst, crea un oggetto directory che punti alla posizione del file flat su disk:SQL> crea la directory exa_dir come 'D:Extbl';Quindi crea lo script che crea la tabella esterna che farà riferimento al file flat:create table exadata_et(exa_id NUMBER,machine_count NUMBER,hide_flag NUMBER,oracle NUMBER,ship_date DATE,rack_type VARCHAR2(32))organizzazione esterna (tipo oracle_loaderdirectory predefinita exa_diraccess parametri(record delimitati da campi di nuova riga terminati da '|' i valori dei campi mancanti sono null(exa_id,machine_count,hide_flag,oracle,ship_date char date_format data mask "mm/dd/yyyy",rack_type))location ('ex.csv'))reject limit illimitato;Viene creata una tabella esterna denominata EXADATA_ET quando esegui questo script. Ora usa SQL*Plus per visualizzare il contenuto del file flat:SQL> seleziona * da exadata_et;EXA_ID MACHINE_COUNT HIDE_FLAG ORACLE SHIP_DATE RACK_TYPE---------- ------------ - ---------- ---------- ---------- ------------------- -5 2 0 0 04-DEC-11 Half6 1 0 1 06-SEP-12 Quarter7 4 0 1 10-AUG-12 Full8 1 1 0 15-JUN-12 Quarter