Oracle externe Tabelle mit dba-Verzeichnis

Wollte ich erstellen Sie eine externe Tabelle, aber nicht das CREATE ANY DIRECTORY Erlaubnis (und konnte es auch nicht gewährt). Fair genug, ich fragte, die Datenbankadministratoren ausführen der folgenden:

CREATE OR REPLACE DIRECTORY ext_data_files AS '/data/ext_data_files';
GRANT ALL ON DIRECTORY ext_data_files TO MYAPPUSER;

Taten Sie, und das Letzte Objekt hat das folgende Skript:

CREATE OR REPLACE DIRECTORY 
EXT_DATA_FILES AS 
'/data/ext_data_files';
GRANT READ, WRITE ON DIRECTORY SYS.EXT_DATA_FILES TO MYAPPUSER;

(Ich habe welche aus Fragen desc mit Toad)

War ich dann in der Hoffnung, dieses Verzeichnis verwenden, um meine externe Tabelle mit dem Skript wie folgt:

CREATE TABLE MYAPPUSER.MY_EXT_TABLE
(
  ID                VARCHAR2(100 BYTE),
  LOGIN             VARCHAR2(100 BYTE),
  CODE              VARCHAR2(100 BYTE),
  CREATED_AT        VARCHAR2(100 BYTE)
)
ORGANIZATION EXTERNAL
  (  TYPE ORACLE_LOADER
     DEFAULT DIRECTORY SYS.EXT_DATA_FILES
     ACCESS PARAMETERS 
       ( RECORDS DELIMITED BY NEWLINE
    NOBADFILE
    NOLOGFILE
    FIELDS TERMINATED BY ';'
    MISSING FIELD VALUES ARE NULL
    ( ID, LOGIN, CODE, CREATED_AT) )
     LOCATION (SYS.EXT_DATA_FILES:'the_external_file.txt')
  )
REJECT LIMIT 0
PARALLEL ( DEGREE DEFAULT INSTANCES DEFAULT )
NOMONITORING;

aber wenn ich dann SELECT * FROM MY_EXT_TABLE, die Folge ist der berühmt-berüchtigte

ORA-29913: Fehler bei der Ausführung ODCIEXTTABLEOPEN Legende
ORA-29400: data cartridge-Fehler
KUP-04040: Datei the_external_file.txt in EXT_DATA_FILES nicht gefunden
ORA-06512: at "SYS.ORACLE_LOADER", Zeile 19

(die hat schon ein paar Treffer bei google, aber keiner scheint-bezogen)

Ich bin zuversichtlich, dass die syntax, da dies ist genau das gleiche script verwendet, in unserer DEV-Umgebung. Auch die Berechtigungen aller Dateien und Verzeichnisse betroffen sind, wurden überprüft und da ist nichts niedriger als 775.

Nur mit dem Unterschied ich habe hier von DEV (wo es funktioniert) ist, dass das Verzeichnis EXT_DATA_FILES war nicht von MYAPPUSER. Ich habe versucht, erstellen ein synonym für es.. hatte aber keine Wirkung.

Vielleicht erwähnenswert, es ist Oracle 10g über die wir sprechen.

Übersehe ich hier etwas offensichtliches? Ist das erlaubt?

1. Warum in der sys? Konnte nicht die DBA ' s haben es in das richtige schema? 2. Hat Sie die Datei auch tatsächlich in dem Verzeichnis vorhanden sind?
funktioniert die txt-Datei eigentlich vorhanden???
Nun, sollte dieses Verzeichnis benutzt werden, um mehr als ein schema.. ich dachte, es Art von Sinn werden in der SYS oder irgendwo für alle Benutzer gleich. Wie für die Dateien, ja es existiert, und wie ich schon erwähnt "die Berechtigungen aller Dateien und Verzeichnisse, die beteiligt waren, geprüft wird." :/
Verzeichnisse haben keine Schemata, Sie gehören alle zu SYS (ab 11gR2)
Bahh. Schande über mich. Fand es. Alle Dateien und Berechtigungen waren es in Ordnung, ein kleines Problem gedacht. Sie bewegten sich die ganze friggn' DB nicht mounten, wieder etwas weniger verwendet FSs zurück nach der migration (und wie Murphy vorhergesagt, ich nahm mir eins von diesen für meine externe Tabelle). Aus meiner app POV war alles in Ordnung, aber Oracle nicht über die FS zu Abfrage. Tut mir Leid, Sie zu stören Leute mit diesem..

InformationsquelleAutor filippo | 2012-03-21

Schreibe einen Kommentar