Oracle9iでUTL_FILEが動きません。

OracleはWindowsServerに入れてあり、UTL_FILEを利用するPL/SQLを実行するのも同じマシンからです。
http://www.shift-the-oracle.com/plsql/utl_file/utl_file_dir.html などを参考に

設定A:
ALTER SYSTEM SET
UTL_FILE_DIR='d:\フォルダ名'
SCOPE = SPFILE ;
して再起動。

あとは
設定B:
CREATE DIRECTORY utl_data AS 'd:\フォルダ名';
GRANT READ,WRITE ON DIRECTORY utl_data TO user_name ;で
という方法も試してみましたがダメでした。(ORA-29280 エラー や ORA-29283エラー)

PL/SQL内は
handle_in utl_file.file_type;
W_DIR = 'd:\フォルダ名';(設定B時はW_DIR='UTL_DATA')
W_FIL = 'ファイル名';
handle_in := utl_file.fopen(W_DIR,W_FIL,'r',10000);

Oracleの本で調べたところ 以下をチェックするように書いてあり
1.Oracle9iで初期化パラメータの管理にSPFILEを使用している場合は、init.oraからSPFILEに変更を反映する必要がある
2.Oracleをインストールしたユーザーにアクセス権がなければ読み書きできない

チェック1の「init.oraからSPFILEに変更を反映する」というのがよくわかりませんでした。
またチェック2のOracleインストールユーザー名というのはどこで確認したら良いのでしょうか。設定B時に権限を与えていますがログイン時のユーザーのみです。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2008/04/02 12:56:57
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:samasuya No.1

回答回数315ベストアンサー獲得回数11

ポイント60pt

ディレクトリ名を英語のみにしてみてはどうでしょう?

設定AでSPFILEには反映されてるように思います。

SELECT NAME, VALUE FROM V$PARAMETER2 WHERE NAME='utl_file_dir' ;

で確認してください。

http://www.shift-the-oracle.com/oerrs/ora-29280.html

SPFILE)

http://www.shift-the-oracle.com/oracle/pfile-spfile.html

http://634.ayumu-baby.com/oracle/oracle_spfile.html

Oracleのインストールユーザーは、Oracleをインストールしたユーザーです。

Windowsのユーザー管理で、DBAグループに入ってるユーザー居ませんか?

id:cryonics

回答ありがとうございます。

ディレクトリ名は英語表記です。

SELECT NAME, VALUE FROM V$PARAMETER2 WHERE NAME='utl_file_dir' ;

での確認は行いました。正しく設定されていました。

すみません。初歩的なことなんでしょうがDBAグループの確認の仕方がわかりません。

OSの管理ツールか何かで確認できるのでしょうか。

2008/04/02 07:49:29

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません