2012-03-21 10 views
1

外部テーブルを作成したかったのに、CREATE ANY DIRECTORY権限を持っていませんでした(許可されていない可能性があります)。十分なフェア、私は次のように実行するためにデータベース管理者に尋ねた:dbaのディレクトリを持つOracle外部テーブル

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

彼らがやった、と最終的なオブジェクトは、次のスクリプトがあります。

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

を(私が得たものヒキガエルとdesc求めてから)

私は、次のようにスクリプトを使って自分の外部表を作成するには、このディレクトリを使用するように期待していた。

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; 

SELECT * FROM MY_EXT_TABLEその後、結果は

ORA-29913悪名高い

ある:データカートリッジエラー
KUP-04040:ODCIEXTTABLEOPEN吹き出し
ORA-29400を実行することでエラーEXT_DATA_FILESにthe_external_file.txtファイルではありません
ORA-06512が見つかりました: "SYS.ORACLE_LOADER" で、(Googleでかなりの数のヒットがありますが、どれも関連思えない)

ライン19

これは私たちのDEV環境で使用されているのとまったく同じスクリプトなので、私は構文が正しいと確信しています。また、関連するすべてのファイルとディレクトリのアクセス許可がチェックされ、775よりも低いものはありません。

私はDEV(ここでは動作します)との唯一の違いは、ディレクトリEXT_DATA_FILESがMYAPPUSERによって作成されなかったことです。私は同義語を作成しようとしましたが、効果はありませんでした。

多分言及する価値がありますが、私たちが話しているのはOracle 10gです。

明らかなものがありませんか?これは許可されていますか?

+0

1. sysでなぜですか? DBAが正しいスキーマでそれを作成できませんでしたか? 2.実際にディレクトリにファイルがありますか? – Ben

+1

実際にtxtファイルは存在しますか? – Randy

+0

このディレクトリは、複数のスキーマで使用する必要があります。私は、SYSやすべてのユーザーに共通の場所にいるのが理にかなっていると思いました。ファイルに関しては、それは存在し、私が "関連するすべてのファイルとディレクトリのパーミッションがチェックされている"と言います。 :/ – filippo

答えて

1

すべてのディレクトリは、実際にSYSが所有しています。そのため、CREATE DIRECTORY権限はなく、CREATE ANY DIRECTORYのみです。

ディレクトリ名の前にSYSスキーマを付けずにコマンドを試してみてください。

+0

SYSのない同じ結果..実際は元のスクリプトでした。 SYSを追加して質問に明示しました。とにかくそれを知ってよかった。エラーは他の場所にあるはずです。 – filippo

+0

興味深いものが見つかりました:In my dev env。 'desc EXT_DATA_FILES'を実行すると、オブジェクトの説明が表示されます。今、prod envで。私が同じ 'desc EXT_DATA_FILES'を実行しても動作しない場合は、SYSを追加すると説明が表示されます。例えば、 'desc SYS.EXT_DATA_FILES'です。何とかこれが手掛かりになるのでしょうか? @VincentMalgratこれもあなたに意味があるでしょうか?ありがとう! – filippo

0

エラーメッセージが読み: は「EXT_DATA_FILESにthe_external_file.txtファイルが見つかりません」それはあります

あなたはよろしいですか?

+0

陽性。 :(これには正しいアクセス権もあります。 – filippo

関連する問題