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

Příklad externí tabulky Oracle

Jedním z běžných použití externí tabulky je výběr dat ze souboru OS CSV (plochý) prostřednictvím SQL *Plus. Při použití externí tabulky v tomto režimu musíte určit typ dat v souboru a způsob organizace dat. Můžete si vybrat z externí tabulky, ale není povoleno upravovat obsah (žádné vkládání, aktualizace nebo mazání).

Funkce externí tabulky Oracle umožňuje provádět dvě různé operace:

  • Transparentně vybírejte informace ze souborů CSV (Comma-Separated-value) operačního systému prostřednictvím SQL, což vám umožňuje provádět úkoly, jako je načítání těchto souborů do databáze.
  • Vytvářejte soubory výpisu nezávislé na platformě, které lze použít k přenosu dat. Tyto soubory můžete také vytvořit jako komprimované a zašifrovat je pro efektivní a bezpečný přenos dat

V tomto příkladu se plochý soubor jmenuje ex.csv a je umístěn v adresáři D:Extbl. Obsahuje následující údaje:5|2|0|0|12/04/2012|Half6|1|0|1|09/06/2013|Quarth7|4|0|1|08/10/2013|Full8| 1|1|0|06/15/2013|Nejprve vytvořte objekt adresáře, který ukazuje na umístění plochého souboru na disku:SQL> vytvořte adresář exa_dir jako 'D:Extbl';Poté vytvořte skript, který vytvoří externí tabulku který bude odkazovat na plochý soubor:vytvořit tabulku exadata_et(exa_id NUMBER,machine_count NUMBER,hide_flag NUMBER,oracle NUMBER,ship_date DATE,rack_type VARCHAR2(32))organizace externí (typ oracle_loaderdefault directory exa_diraccess'parametry(záznamy ukončené novým řádkem'pole) chybějící hodnoty polí jsou 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 limited;Externí tabulka s názvem EXADATA_ET je vytvořena když spustíte tento skript. Nyní použijte SQL*Plus k zobrazení obsahu plochého souboru:SQL> vyberte * z exadata_et;EXA_ID MACHINE_COUNT HIDE_FLAG ORACLE SHIP_DATE RACK_TYPE---------- ------------- ---------- ---------- ---------- ------------------- -5 2 0 0 04-DEC-11 Polovina 6 1 0 1 06-SEP-12 čtvrtletí
  1. Opakující se hodnoty ve sloupci

  2. Jak převést 1985-02-07T00:00:00.000Z (ISO8601) na hodnotu data v Oracle?

  3. Může spravovaný ovladač Oracle správně používat async/await?

  4. R12.2 Cyklus oprav online Shrnutí