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

script, der trækker data fra en txt-fil i where-klausulen

Lyder som en Ekstern Oracle-mappe er perfekt til jobbet. Husk på, at denne tilgang er fyldt med vanskeligheder, hvis dette er en tekstfil, som brugerne kan skrive til. Brugere vil gøre hundrede ting, du aldrig troede var muligt, og som vil forårsage fejl og mere .

Fra artiklen:

Opret en mappe

giv læsning, skriv i mappen data_dir til din_bruger;

Opret en ekstern tabel

CREATE TABLE test_ext (
  test_code      VARCHAR2(5),
  test_name      VARCHAR2(50)
)
ORGANIZATION EXTERNAL (
  TYPE ORACLE_LOADER
  DEFAULT DIRECTORY ext_tab_data
  ACCESS PARAMETERS (
    RECORDS DELIMITED BY NEWLINE
    FIELDS TERMINATED BY ','
    MISSING FIELD VALUES ARE NULL
    (
      test_code      CHAR(5),
      test_name      CHAR(50)
    )
  )
  LOCATION ('test1.txt','test2.txt')
)
PARALLEL 5
REJECT LIMIT UNLIMITED;

og læs derefter fra tabellen

SELECT *
    FROM   test_ext
    ORDER BY test_name;

Rediger:du kan stadig gøre dette med mapper, der ikke er placeret på databaseserveren, men der kræves mere arbejde, og dette udgør en endnu større risiko for databasesikkerheden og datakvaliteten. Denne tilgang skalerer heller ikke. Har du til hensigt at tilføje en ny mappe, hver gang en ny bruger tilføjes?

Trin til at give Oracle adgang til filer, der er placeret på en anden maskine (forudsat Windows-operativsystem)

  • opret en Windows- eller domænebruger, der vil have læsefiltilladelser på hver mappe, du ønsker at få adgang til
  • på databaseserveren køre services.msc og ændre den bruger, som Oracle-databasetjenesten kører på, til den nye domænebruger. Føj denne bruger til den lokale gruppe kaldet ORA_DBA på databaseserveren
  • genstart databasen for at ændringerne træder i kraft
  • opret en mappe i databasen ved hjælp af en sti som //clientPc/sharedFolder
  • giv læsetilladelser til din databasebruger
  • på klientmaskinen tildel læsning til domænebrugeren på den mappe
  • bekræft forbindelsen ved at bruge UTLFILE for at læse en eksempelfil på klient-pc'en



  1. Hvordan sender man en tabel eller rækker til en funktion i Postgresql?

  2. Postgres array json seneste dato

  3. Yii CDbConnection kunne ikke åbne DB-forbindelsen:kunne ikke finde driver med google cloud sql

  4. Sådan tvinges MySQL til at tage 0 som en gyldig automatisk stigningsværdi