ORACLE TECHNOLOGY NETWORK
 
 
   

Oracle Technology Network (OTN) Japan - 掲示板 » データベース(R/O) » Oracle9iデータベースの部屋(読取専用)

スレッド: UTL_FILEについて

このスレッドに返信する このスレッドに返信する スレッド一覧へ スレッド一覧へ

Permlink 返信数: 9 - ページ数: 1 - 最新投稿 : 2004/01/26 10:46 最新投稿者: NorikoS - スレッド表示形式:
NorikoS

投稿数: 3
登録日時: 04/01/19


UTL_FILEについて
投稿時刻: 2004/01/23 17:13
  このスレッドに返信します… 返信

こんにちは
UTL_FILEを使ってログファイルを作ろうと思っているのですが
行1でエラーが発生しました。:
ORA-29283: 無効なファイル操作です。
ORA-06512: "SYS.UTL_FILE", 行449
ORA-29283: 無効なファイル操作です。
ORA-06512: 行10
というエラーが出てしまいます。
このエラーはどういう意味なんでしょうか?

U210715869

投稿数: 2,689
登録日時: 00/05/15


RE:UTL_FILEについて
投稿時刻: 2004/01/23 17:19   NorikoS さんへの返信です。 NorikoS さんへの返信です。
  このスレッドに返信します… 返信

>行1でエラーが発生しました。:
>ORA-29283: 無効なファイル操作です。
>ORA-06512: "SYS.UTL_FILE", 行449
>ORA-29283: 無効なファイル操作です。
>ORA-06512: 行10
>というエラーが出てしまいます。
>このエラーはどういう意味なんでしょうか?

NorikoSさん、こんにちは。
さしつかえなければ、作成したプロシージャとエラーが発生した行を
公開してもらえませんか。

U11021962

投稿数: 338
登録日時: 00/05/22


RE:UTL_FILEについて
投稿時刻: 2004/01/23 17:20   NorikoS さんへの返信です。 NorikoS さんへの返信です。
  このスレッドに返信します… 返信

>こんにちは
>UTL_FILEを使ってログファイルを作ろうと思っているのですが
>行1でエラーが発生しました。:
>ORA-29283: 無効なファイル操作です。
>ORA-06512: "SYS.UTL_FILE", 行449
>ORA-29283: 無効なファイル操作です。
>ORA-06512: 行10
>というエラーが出てしまいます。
>このエラーはどういう意味なんでしょうか?
---

書き込みをしようとしているディレクトリが存在しないか、
アクセス権がないのではないかと思います。

あと初期化パラメータに以下の指定がないのではないでしょうか?
utl_file_dir=*


20020113

投稿数: 1,470
登録日時: 02/12/03


RE:UTL_FILEについて
投稿時刻: 2004/01/23 17:21   NorikoS さんへの返信です。 NorikoS さんへの返信です。
  このスレッドに返信します… 返信

>行1でエラーが発生しました。:
>ORA-29283: 無効なファイル操作です。
>このエラーはどういう意味なんでしょうか?

エラーメッセージの意味は
ORA-29283 無効なファイル操作です。
原因: 存在しないファイルやディレクトリを読み込もうとしたか、
またはファイルやディレクトリへのアクセスがオペレーティング・
システムにより拒否されました。
処置: ファイル・システムでファイルおよびディレクトリのアクセス
権限を確認してください。
読込みの場合は、ファイルが存在することを確認してください。
です。


hoge

投稿数: 11,812
登録日時: 99/03/15


RE:UTL_FILEについて
投稿時刻: 2004/01/23 17:22   NorikoS さんへの返信です。 NorikoS さんへの返信です。
  このスレッドに返信します… 返信

>こんにちは
>UTL_FILEを使ってログファイルを作ろうと思っているのですが
>行1でエラーが発生しました。:

CREATE DIRECTORYを実行して作成した
DIRECTORYの権限をユーザーに付与してますか?

掲示板をUTL_FILEで検索するとたくさん出てきますので
参考にしてみてください。


NorikoS

投稿数: 3
登録日時: 04/01/19


RE[1]:UTL_FILEについて
投稿時刻: 2004/01/23 17:38   U210715869 さんへの返信です。 U210715869 さんへの返信です。
  このスレッドに返信します… 返信

>>行1でエラーが発生しました。:
>>ORA-29283: 無効なファイル操作です。
>>ORA-06512: "SYS.UTL_FILE", 行449
>>ORA-29283: 無効なファイル操作です。
>>ORA-06512: 行10
>>というエラーが出てしまいます。
>>このエラーはどういう意味なんでしょうか?
>
>NorikoSさん、こんにちは。
>さしつかえなければ、作成したプロシージャとエラーが発生した行を
>公開してもらえませんか。

早速の返信ありがとうございます 
実際にコンパイルをかけた簡単なソース送付いたします。
よろしくお願いいたします。
**************************************************************
declare
fno utl_file.file_type;
begin
fno := utl_file.fopen('C:\TEMP\', 'aaa.txt', 'R');
end;

yamataka

投稿数: 2,528
登録日時: 00/06/02


RE[2]:UTL_FILEについて
投稿時刻: 2004/01/23 17:55   NorikoS さんへの返信です。 NorikoS さんへの返信です。
  このスレッドに返信します… 返信

>実際にコンパイルをかけた簡単なソース送付いたします。
>よろしくお願いいたします。
>**************************************************************
>declare
> fno utl_file.file_type;
>begin
> fno := utl_file.fopen('C:\TEMP\', 'aaa.txt', 'R');
>end;

utl_fileパッケージを使用するには、初期化パラメータのutl_file_dirを
設定する必要があります。

utl_file_dir = 'C:\TEMP'
などとしてデータベースを再起動してください。

また9i R2からはディレクトリオブジェクトを使用することも可能です。
create directory 名称 as 'C:\TEMP';
で作成した後に

utl_file.fopen(名称 ...)

という指定も可能です。

# 質問時にはバージョンなどを記述したほうが適切なレスが付きますよ

U210715869

投稿数: 2,689
登録日時: 00/05/15


RE[2]:UTL_FILEについて
投稿時刻: 2004/01/23 18:39   NorikoS さんへの返信です。 NorikoS さんへの返信です。
  このスレッドに返信します… 返信

>早速の返信ありがとうございます 
>実際にコンパイルをかけた簡単なソース送付いたします。
>よろしくお願いいたします。
>**************************************************************
>declare
> fno utl_file.file_type;
>begin
> fno := utl_file.fopen('C:\TEMP\', 'aaa.txt', 'R');
>end;

NorikoSさん、こんにちは。
実際に同じような環境と作って実行してみました。

1.spfileに'C:\TEMP\'を登録する
SQL> select sid,name,value from v$spparameter where name
= 'utl_file_dir';

SID NAME VALUE
---------- ---------------------------------------- -----------------
-----------------------
* utl_file_dir C:\TEMP\

2.DBを再起動

3.問題のPL/SQLを実行
SQL> declare
2 fno utl_file.file_type;
3 begin
4 fno := utl_file.fopen('C:\TEMP\', 'aaa.txt', 'R');
5 end;
6 /

PL/SQLプロシージャが正常に完了しました。

ここまでは正常に動作しました。
そこで、存在しないファイル'bbb.txt'にアクセスするように変更したとこ
ろ、同じエラーが発生しました。
SQL> declare
2 fno utl_file.file_type;
3 begin
4 fno := utl_file.fopen('C:\TEMP\', 'bbb.txt', 'R');
5 end;
6 /
declare
*
行1でエラーが発生しました。:
ORA-29283: 無効なファイル操作です。
ORA-06512: "SYS.UTL_FILE", 行449
ORA-29283: 無効なファイル操作です。
ORA-06512: 行4

これからすると、多分、aaa.txtがないか、もしくは、その他の原因で
アクセスできないのではないでしょうか。



宇治金時

投稿数: 438
登録日時: 00/03/17


RE[3]:UTL_FILEについて
投稿時刻: 2004/01/24 10:49   U210715869 さんへの返信です。 U210715869 さんへの返信です。
  このスレッドに返信します… 返信

>ORA-29283: 無効なファイル操作です。
>ORA-06512: "SYS.UTL_FILE", 行449
>ORA-29283: 無効なファイル操作です。
>ORA-06512: 行4
>
>これからすると、多分、aaa.txtがないか、もしくは、その他の原因で
>アクセスできないのではないでしょうか。

無いファイルはReadで開けませんから、このようなエラーになります。
ということで、このエラーをEXCEPTIONして「ファイルがありません」
なんてメッセージを出すようにすれば良いですね。

書き込むのであれば無い場合は新たに作成しますので、このようなエラー
にはなりません。


---
宇治金時 with OTN-Viewer

NorikoS

投稿数: 3
登録日時: 04/01/19


RE[3]:UTL_FILEについて
投稿時刻: 2004/01/26 10:46   yamataka さんへの返信です。 yamataka さんへの返信です。
  このスレッドに返信します… 返信

>>実際にコンパイルをかけた簡単なソース送付いたします。
>>よろしくお願いいたします。
>>**************************************************************
>>declare
>> fno utl_file.file_type;
>>begin
>> fno := utl_file.fopen('C:\TEMP\', 'aaa.txt', 'R');
>>end;
>
>utl_fileパッケージを使用するには、初期化パラメータのutl_file_dirを
>設定する必要があります。
>
>utl_file_dir = 'C:\TEMP'
>などとしてデータベースを再起動してください。
>
>また9i R2からはディレクトリオブジェクトを使用することも可能です。
>create directory 名称 as 'C:\TEMP';
>で作成した後に
>
>utl_file.fopen(名称 ...)
>
>という指定も可能です。
>
># 質問時にはバージョンなどを記述したほうが適切なレスが付きますよ
ありがとうございました
原因がわかりました。
サーバーがUNIXにもかかわらず'C:\TEMP\' と指定していたため、ファイルを
読み取ることができなかったようです。
>create directory 名称 as 'C:\TEMP';
を何度もやってみて気づくことができました。
以後サーバーの種類には気をつけます。 






ウェブサイトのご使用条件 | 個人情報保護基本方針/情報保護基本方針