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

Eksternt Oracle-tabeleksempel

En almindelig anvendelse af en ekstern tabel er udvælgelsen af ​​data fra en OS CSV (flad) fil via SQL *Plus. Når du bruger en ekstern tabel i denne tilstand, skal du angive typen af ​​data i filen, og hvordan dataene er organiseret. Du kan vælge fra en ekstern tabel, men har ikke tilladelse til at ændre indholdet (ingen indsættelser, opdateringer eller sletninger).

Oracles eksterne tabelfunktion giver dig mulighed for at udføre to forskellige operationer:

  • Vælg gennemsigtigt information fra OS-filer med kommaseparerede værdier (CSV) via SQL, som giver dig mulighed for at udføre opgaver såsom at indlæse disse filer i databasen.
  • Opret platformsuafhængige dumpfiler, der kan bruges til at overføre data. Du kan også oprette disse filer som komprimerede og kryptere dem for effektiv og sikker datatransport

I dette eksempel hedder den flade fil ex.csv og er placeret i D:Extbl-mappen. Den indeholder følgende data:5|2|0|0|12/04/2012|Halv6|1|0|1|09/06/2013|Kvartal7|4|0|1|08/10/2013|Fuld8| 1|1|0|06/15/2013|KvarterFørst skal du oprette et biblioteksobjekt, der peger på placeringen af ​​den flade fil på disken:SQL> opret biblioteket exa_dir som 'D:Extbl'; Opret derefter et script, der opretter den eksterne tabel der vil referere til den flade fil:opret tabel 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 limited by newlinefields) manglende feltværdier er 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;En ekstern tabel ved navn EXADATA_ET oprettes når du udfører dette script. Brug nu SQL*Plus til at se indholdet af den flade fil:SQL> vælg * fra exadata_et;EXA_ID MACHINE_COUNT HIDE_FLAG ORACLE SHIP_DATE RACK_TYPE---------- ------------ ---------- ---------- ---------- ------------------ -5 2 0 0 04-DEC-11 Halv 6 1 0 1 06-SEP-12 Kvartal7 4 0 1 10-AUG-12 Fuld8 1 1 0 15-JUN-12 Kvartal
  1. konvertering af en varchar-datatype til en datetime-datatype resulterede i en værdi uden for området

  2. Bemærk brugere, der kører SQL Server 2008 og SQL Server 2008 R2

  3. Hvad denne forespørgsel gør for at oprette kommasepareret liste SQL Server?

  4. Tips og tricks til implementering af databaserollebaserede adgangskontroller til MariaDB