大家好你们好。我是 PL/SQL 和 Oracle 数据库的新手。我需要读/写服务器上存在的文件,所以我正在使用utl_file.fopen('/home/tmp/','text.txt','R')
,但 Oracle 显示错误“目录路径无效”。
主要问题是我只有用户权限,所以我不能使用类似create directory user_dir as '/home/temp/'
或查看 utl_file_dir 之类的命令,只show parameter utl_file_dir;
使用此代码查看 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;