1. ホーム
  2. oracle

[解決済み] ORA-29283: 無効なファイル操作 ORA-06512: "SYS.UTL_FILE", 行 536 で。

2022-02-14 05:18:48

質問

以下は、私がテーブルからフラットファイルにデータを抽出するために使用するコードです。

BEGIN
    DECLARE
        file_name VARCHAR2(50);
        file_handle utl_file.file_type;
BEGIN
    file_name := 'table.txt';
    file_handle := utl_file.fopen('SEND',file_name,'W');
FOR rec in(
    SELECT            column 1
                ||'~'||column 2
                ||'~'||column 3 out_line
    FROM table1)LOOP
UTL_FILE.PUT_LINE(file_handle,rec.out_line);
UTL_FILE.FFLUSH(file_handle);
END LOOP;
UTL_FILE.FCLOSE(file_handle);
END;
end;

このコードは開発用データベースでは問題なく動作していますが、新しいデータベースで実行すると以下のエラーが発生します。

Error starting at line 1 in command:
    BEGIN
    DECLARE
        file_name VARCHAR2(50);
        file_handle utl_file.file_type;
BEGIN
    file_name := 'table.txt';
    file_handle := utl_file.fopen('SEND',file_name,'W');
FOR rec in(
    SELECT            column 1
                ||'~'||column 2
                ||'~'||column 3 out_line
    FROM table1)LOOP
UTL_FILE.PUT_LINE(file_handle,rec.out_line);
UTL_FILE.FFLUSH(file_handle);
END LOOP;
UTL_FILE.FCLOSE(file_handle);
END;
end;

Error report:
ORA-29283: invalid file operation
ORA-06512: at "SYS.UTL_FILE", line 536
ORA-29283: invalid file operation
ORA-06512: at line 7
29283. 00000 -  "invalid file operation"
*Cause:    An attempt was made to read from a file or directory that does
           not exist, or file or directory access was denied by the
           operating system.
*Action:   Verify file and directory access privileges on the file system,
           and if reading, verify that the file exists.


Oracle directory 'SEND' points to some UNIX directory which has rights as 
       'rwxrwsr-x' (Octal 2775)
Oracle Version:11g

この問題を解決するために助けてください。

この質問を解決するために、もっとデータが必要な場合は、私に知らせてください。

どのように解決するのですか?

というわけで、@Vivekは実際の回答ではなく、コメント欄での対話を通じて問題の解決策を得ました。

<ブロッククオート

ファイルを作成するのは、ユーザー oracle このエラーは、ファイルを作成しようとしたディレクトリに、書き込み権限がないために発生します。 others とユーザー oracle の下に来る。 others カテゴリーに分類されます。

SOはフォーラムではなく、Q&Aサイトだと言っているのは誰ですか? えー、私です、とりわけ。とにかく、この質問に対する受け入れ可能な答えがない場合、私は以下のトピックに関する私の答えへのリンクを提示します。 UTL_FILE.FOPEN() . ここから検索 .

P.S. この回答は、この質問に対する適切な回答ではなく、どこかにリダイレクトしているだけなので、コミュニティWikiに印を付けています。