人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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時に権限を与えていますがログイン時のユーザーのみです。

●質問者: cryonics
●カテゴリ:コンピュータ インターネット
✍キーワード:ALTER AS ON Oracle PL/SQL
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● samasuya
●60ポイント ベストアンサー

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

設定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グループに入ってるユーザー居ませんか?

◎質問者からの返答

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

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

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

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ