0

Oracle データベースからバイトを選択し、それらをイメージ ファイルに変換しようとしています。Oracle プロシージャを作成すると、UTL_FILE.fopen で停止し、ORA-29280 エラーが返されます。Oracle コミュニティによると、このエラーは、OS レベルのユーザーがフォルダーへの書き込み権限を持っていないか、upper_cases を使用する必要があるために発生すると言われています。しかし、提案 1 では、.Net を使用して同じフォルダーにアクセスしようとしましたが、画像ファイルが正常に作成されました。提案 2 では、大文字を使用してみましたが、まだ同じエラーに直面しています。何が問題なのですか?.Net からファイルを作成できるのに oracle からは作成できないのはなぜですか? 以下は私のコードです:

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('C:\LOB', file_name, 'WB', raw_max_size);
   -- Here it stops working ! -- 
   ....
   utl_file.fclose(file_ref);

END BLOB_UPDATE;
4

1 に答える 1

0

DBで実行してください:

create or replace directory DIR as 'C:\LOB'
grant read, write on directory DIR to your_user

次に、手順のディレクトリに次のようにアクセスします。

file_ref := UTL_FILE.fopen('DIR', file_name, 'WB', raw_max_size); 
于 2016-11-07T09:51:56.307 に答える