1

PC のフォルダに Oracle データベースからアクセスできますか? つまり、ローカル マシンにデータベースがインストールされておらず、データベースから取得した画像を保存するために、PC 'C:\LOB' にフォルダを作成しましたが、

ORA-29283 エラー: ファイル操作が無効です。

データベースのディレクトリフォルダーにディレクトリが表示されるため、ディレクトリが作成されていると確信しています。では、何が問題になるのでしょうか?私のPCにフォルダが作成され、データベースが別の場所にあるためですか?以下は私の手順です:

CREATE OR REPLACE PROCEDURE BLOB_UPDATE (file_name in varchar) IS

    file_ref UTL_FILE.file_type;
    raw_max_size constant number := 32767;

 begin

   file_ref := UTL_FILE.fopen('MY_DIR', file_name, 'WB', raw_max_size);
   -- Here it stops working ! -- 
   ....
   utl_file.fclose(file_ref);

END BLOB_UPDATE;
4

1 に答える 1

3

PL/SQL は、データベース システム、つまりサーバー上で実行されます。サーバー上のファイルにのみアクセスできます。PC上のファイルには対応していません。

Oracle でディレクトリを定義し ( CREATE DIRECTORY ...)、ユーザーに十分なアクセス権を付与した場合でも、Oracle はC:\LOBPC ではなくサーバーにアクセスしようとするため、失敗します。

達成しようとしていることは、サーバー側では解決できません。つまり、PL/SQL では解決できません。Java や .NET プログラムなど、クライアント側 (つまり、PC) で実行されるコードを作成する必要があります。

于 2016-11-08T08:20:13.767 に答える