Låter som en Extern Oracle-katalog är perfekt för jobbet. Tänk på att detta tillvägagångssätt är fyllt med svårigheter om det här är en textfil som användare kan skriva till. Användare kommer att göra hundra saker som du aldrig trodde var möjliga som kommer att orsaka fel och mer .
Från artikeln:
Skapa en katalog
bevilja läsning, skriv i katalogen data_dir till din_användare;
Skapa en extern tabell
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;
och läs sedan från tabellen
SELECT *
FROM test_ext
ORDER BY test_name;
Redigera:du kan fortfarande göra detta med kataloger som inte finns på databasservern men mer arbete krävs och detta utgör en ännu större risk för databassäkerhet och datakvalitet. Det här tillvägagångssättet skalas inte heller. Har du för avsikt att lägga till en ny katalog varje gång en ny användare läggs till?
Steg för att tillåta Oracle att komma åt filer som finns på en annan dator (förutsatt att Windows operativsystem)
- skapa en Windows- eller domänanvändare som kommer att ha läsbehörighet för varje katalog som du vill komma åt
- på databasservern kör services.msc och ändra användaren som Oracle-databastjänsten körs på till din nya domänanvändare. Lägg till denna användare i den lokala gruppen som heter ORA_DBA på databasservern
- Starta om databasen för att ändringarna ska träda i kraft
- skapa en katalog i databasen med en sökväg som //clientPc/sharedFolder
- ge läsbehörigheter till din databasanvändare
- på klientdatorn bevilja läsning till domänanvändaren på den mappen
- verifiera anslutningen genom att använda UTLFILE för att läsa en exempelfil på klientdatorn