
UTL_FILEパッケージを使用してPL/SQLよりテキスト出力したいのですが上手くいきません。
まずsysdbaにて「create directory aaa as 'd:\'」にてディレクトリを作成しました。
次に以下のようにプロシージャを作成しました。
create procedure kan_exp(
fir IN varchar2, filename IN varchar2) is
file UTL_FILE.FILE_TYPE;
CURSOR tk01_kan_c IS
select aaa,bbb
from tableCCC
begin
file := UTL_FILE.FOPEN(dir, filename, 'w');
UTL_FILE.PUT_LINE(file, 'TEST');
UTL_FILE.NEW_LINE(file);
for kanrec in tk01_kan_c loop
UTL_FILE.PUT_LINE(file, 'TEST');
end loop;
END kan_exp;
/
それを以下のように呼び出しましたが、
execute kan_exp('UTL_FILE_DIR', 'aaa.csv');
「ORA-29280:無効なディレクトリパスです。」エラーが発生します。
色々と調べてユーザに権限が必要かと思い、「grant read on directory to User」としましたが、ユーザーまたはロール'User'は存在しませんと出てきます。※もちろんUserは存在します。
なにか足りないものがあるのでしょうか?
ご教示いただけますでしょうか?宜しくお願いします。
No.1ベストアンサー
- 回答日時:
本当にそういうコードなのか、転記ミスなのか良くわからないので
勝手に判断することを許してください。
>まずsysdbaにて「create directory aaa as 'd:\'」にてディレクトリを作成しました。
「sysdbaで」を「sysユーザで」と解釈します。
sysでディレクトリオブジェクトを作って、他のユーザが
そのディレクトリオブジェクトを使ってファイルに書き出す場合、
そのユーザに対しwrite権限が必要になります。
>create procedure kan_exp(
>fir IN varchar2, filename IN varchar2) is
kan_expの第一パラメータ名は「dir」?だとすると
>execute kan_exp('UTL_FILE_DIR', 'aaa.csv');
この第一パラメータの値は'aaa'だと思います。
>「grant read on directory to User」としましたが
オブジェクト名が抜けているようですよ。
grant write on directory aaa to User;
のようになります。
大変申し訳ないです。
転記ミスもありました。
その後パブリックにreadとwrite権限追加できましたが、systemではall_directoriesに入っていることを確認しましたがuserには何も入ってきておりません。それが問題だと思うのですが如何でしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイルへの書き込みができない
-
ORA-29280:無効なディレクトリ...
-
Oracle DataPumpでの移行
-
oracleでexpdpを使いデータをex...
-
データベースオブジェクトの考...
-
ORA-01013のエラーについて経験...
-
Oracleで流したSQLのログを取得...
-
CASE文のエラーについて
-
ORA-01843: 指定した月が無効で...
-
JavaでのOracle接続について(J...
-
インポートコマンドが認識され...
-
シェルスクリプトでオラクルの...
-
batファイルでのSQL(oracle)...
-
DOSプロンプトとコマンドプロン...
-
ACCESS:保存済みのインポート...
-
PL/SQL PLS-00103エラーについて
-
PL/SQLのコンパイルエラーにつ...
-
フォルダウィンドウのデータフ...
-
PL/SQLでPLS-00201のエラー
-
無効なSQL文の具体例を教えてく...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ORA-29280:無効なディレクトリ...
-
ファイルへの書き込みができない
-
ユーザーへのディレクトリ権限...
-
Oracle DataPumpでの移行
-
データベースオブジェクトの考...
-
タイプオブジェクト とは何で...
-
oracleでexpdpを使いデータをex...
-
UTL_FILEパッケージについて
-
エラーの解決方法が分かりません。
-
ORA-01013のエラーについて経験...
-
Oracleで流したSQLのログを取得...
-
CASE文のエラーについて
-
xy平面上の点P(x,y)に対し,点Q(...
-
はじめまして!
-
北朝鮮のミサイルについて
-
PL/SQLでログを確認したい。
-
PL/SQL PLS-00103エラーについて
-
DOSプロンプトとコマンドプロン...
-
クローンソフトで、Acronis Tru...
-
ストアド・プロシージャをバッ...
おすすめ情報