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