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

Beispiel für eine externe Oracle-Tabelle

Eine häufige Verwendung einer externen Tabelle ist die Auswahl von Daten aus einer OS-CSV-Datei (flach) über SQL *Plus. Wenn Sie in diesem Modus eine externe Tabelle verwenden, müssen Sie den Datentyp in der Datei und die Organisation der Daten angeben. Sie können aus einer externen Tabelle auswählen, dürfen aber den Inhalt nicht ändern (keine Einfügungen, Aktualisierungen oder Löschungen).

Mit der Oracle-Funktion für externe Tabellen können Sie zwei unterschiedliche Vorgänge ausführen:

  • Wählen Sie Informationen transparent aus CSV-Dateien (Comma-Separated Value) des Betriebssystems über SQL aus, wodurch Sie Aufgaben wie das Laden dieser Dateien in die Datenbank ausführen können.
  • Erstellen Sie plattformunabhängige Dump-Dateien, die zum Übertragen von Daten verwendet werden können. Sie können diese Dateien auch komprimiert erstellen und für einen effizienten und sicheren Datentransport verschlüsseln

In diesem Beispiel heißt die Flatfile ex.csv und befindet sich im Verzeichnis D:Extbl. Es enthält die folgenden Daten:5|2|0|0|04.12.2012|Hälfte6|1|0|1|06.09.2013|Quartal7|4|0|1|10.08.2013|Voll8| 1|1|0|15.06.2013|QuarterFirst, erstellen Sie ein Verzeichnisobjekt, das auf den Speicherort der Flatfile auf der Festplatte verweist:SQL> erstellen Sie das Verzeichnis exa_dir als „D:Extbl“;erstellen Sie dann ein Skript, das die externe Tabelle erstellt die auf die flache Datei verweist:Tabelle erstellen exadata_et(exa_id NUMBER,machine_count NUMBER,hide_flag NUMBER,oracle NUMBER,ship_date DATE,rack_type VARCHAR2(32))organization external (type oracle_loaderdefault directory exa_diraccess parameters(records delimited by newlinefields beended by '|' fehlende Feldwerte sind null(exa_id,machine_count,hide_flag,oracle,ship_date char date_format date mask "mm/dd/yyyy",rack_type))location ('ex.csv'))reject limit unlimited;Eine externe Tabelle mit dem Namen EXADATA_ET wird erstellt wenn Sie dieses Skript ausführen. Verwenden Sie jetzt SQL*Plus, um den Inhalt der flachen Datei anzuzeigen:SQL> select * from exadata_et;EXA_ID MACHINE_COUNT HIDE_FLAG ORACLE SHIP_DATE RACK_TYPE---------- ------------ - ---------- ---------- ---------- -------------- -5 2 0 0 04-DEZ-11 Halb6 1 0 1 06-SEP-12 Viertel7 4 0 1 10-AUG-12 Voll8 1 1 0 15-JUN-12 Viertel