みなさんこんにちは。PL/SQL および Oracle データベースは初めてです。サーバー上に存在するファイルを読み書きする必要があるため、使用してutl_file.fopen('/home/tmp/','text.txt','R')
いますが、Oracle で「無効なディレクトリ パス」というエラーが表示されます。
主な問題は、私はユーザー権限しか持っていないため、次の
コードを使用してcreate directory user_dir as '/home/temp/'
utl_file_dir を表示するだけで、utl_file_dir のようなコマンドを使用したり表示したりできないことです。show parameter utl_file_dir;
SQL> set serveroutput on;
SQL> Declare
2 Intval number;
3 Strval varchar2 (500);
4 Begin
5 If (dbms_utility.get_parameter_value('utl_file_dir', intval,strval)=0)
6 Then dbms_output.put_line('value ='||intval);
7 Else dbms_output.put_line('value = '||strval);
8 End if;
9 End;
10 /
出力は「値= 0」でした。
私はグーグルで検索しましたが、この問題の解決策が見つからなかったので、ここで助けを求めています.
ファイルを読み取るには、次のコードを使用しました:
declare
f utl_file.file_type;
s varchar2(200);
begin
f := utl_file.fopen('/home/tmp/','text.txt','R');
loop
utl_file.get_line(f,s);
dbms_output.put_line(s);
end loop;
exception
when NO_DATA_FOUND then
utl_file.fclose(f);
end;