Sembra una directory esterna Oracle è perfetto per il lavoro. Tieni presente che questo approccio è irto di difficoltà se si tratta di un file di testo in cui gli utenti possono scrivere. Gli utenti faranno cento cose che non avresti mai creduto possibili che causeranno errori e altro .
Dall'articolo:
Crea una directory
concedi lettura, scrivi nella directory data_dir al tuo_utente;
Crea una tabella esterna
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;
e poi leggi dalla tabella
SELECT *
FROM test_ext
ORDER BY test_name;
Modifica:puoi ancora farlo con le directory che non si trovano sul server del database, ma è necessario più lavoro e questo rappresenta un rischio ancora maggiore per la sicurezza del database e la qualità dei dati. Neanche questo approccio è scalabile. Intendi aggiungere una nuova directory ogni volta che viene aggiunto un nuovo utente?
Passaggi per consentire a Oracle di accedere ai file che si trovano su un'altra macchina (supponendo il sistema operativo Windows)
- crea un utente Windows o di dominio che avrà i permessi di lettura dei file su ogni directory a cui desideri accedere
- sul server di database eseguire services.msc e modificare l'utente su cui viene eseguito il servizio di database Oracle nel nuovo utente di dominio. Aggiungi questo utente al gruppo locale chiamato ORA_DBA sul server di database
- riavvia il database per rendere effettive le modifiche
- crea una directory nel database usando un percorso come //clientPc/sharedFolder
- Concedi i permessi di lettura al tuo utente del database
- sulla macchina client concedere la lettura all'utente di dominio su quella cartella
- verifica la connettività utilizzando UTLFILE per leggere un file di esempio sul pc client