Klingt wie ein Externes Oracle-Verzeichnis ist perfekt für den Job. Denken Sie daran, dass dieser Ansatz mit Schwierigkeiten verbunden ist, wenn es sich um eine Textdatei handelt, in die Benutzer schreiben können. Benutzer werden hundert Dinge tun, die Sie nie für möglich gehalten hätten, die Fehler verursachen und mehr .
Aus dem Artikel:
Erstellen Sie ein Verzeichnis
gewähren Sie Ihrem_Benutzer Lese- und Schreibzugriff auf das Verzeichnis data_dir;
Erstellen Sie eine externe Tabelle
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;
und dann aus der Tabelle lesen
SELECT *
FROM test_ext
ORDER BY test_name;
Bearbeiten:Sie können dies immer noch mit Verzeichnissen tun, die sich nicht auf dem Datenbankserver befinden, aber es ist mehr Arbeit erforderlich, und dies stellt ein noch größeres Risiko für die Datenbanksicherheit und Datenqualität dar. Dieser Ansatz skaliert auch nicht. Beabsichtigen Sie, jedes Mal, wenn ein neuer Benutzer hinzugefügt wird, ein neues Verzeichnis hinzuzufügen?
Schritte, um Oracle den Zugriff auf Dateien zu ermöglichen, die sich auf einem anderen Computer befinden (unter der Annahme eines Windows-Betriebssystems)
- Erstellen Sie einen Windows- oder Domänenbenutzer, der Dateileseberechtigungen für jedes Verzeichnis hat, auf das Sie zugreifen möchten
- Führen Sie auf dem Datenbankserver services.msc aus und ändern Sie den Benutzer, auf dem der Oracle-Datenbankdienst ausgeführt wird, in Ihren neuen Domänenbenutzer. Fügen Sie diesen Benutzer der lokalen Gruppe namens ORA_DBA auf dem Datenbankserver hinzu
- Starten Sie die Datenbank neu, damit die Änderungen wirksam werden
- erstellen Sie ein Verzeichnis in der Datenbank mit einem Pfad wie //clientPc/sharedFolder
- Erteilen Sie Ihrem Datenbankbenutzer Leseberechtigungen
- Erteilen Sie auf dem Client-Rechner dem Domänenbenutzer Leserechte für diesen Ordner
- Überprüfen Sie die Konnektivität durch die Verwendung von UTLFILE um eine Beispieldatei auf dem Client-PC zu lesen