sys@ORADG(192.168.190.241)> show parameter utl
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
utl_file_dir string /oracle/test123, /oracle/logmnr <====-修改前的值
sys@ORADG(192.168.190.241)> alter system set utl_file_dir='/oracle/test123, /oracle/logmnr' scope=spfile;<====错误的用了'xxxxx,yyyyyy'来设置,应该是'xxxxx','yyyyyyy'
System altered.
Elapsed: 00:00:00.01
sys@ORADG(192.168.190.241)>
sys@ORADG(192.168.190.241)>
sys@ORADG(192.168.190.241)> startup force
ORACLE instance started.
Total System Global Area 370218244 bytes
Fixed Size 451844 bytes
Variable Size 167772160 bytes
Database Buffers 201326592 bytes
Redo Buffers 667648 bytes
Database mounted.
Database opened.
sys@ORADG(192.168.190.241)>
sys@ORADG(192.168.190.241)> show parameter utl
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
utl_file_dir string /oracle/test123, /oracle/logmnr <====修改后的值,注意此处,看上去和修改前一模一样。
sys@ORADG(192.168.190.241)>
但是测试SQL就报错了:
> DECLARE
2 file_location VARCHAR2(256) := '/oracle/test123';
3 file_name VARCHAR2(256) := 'utlfile.txt';
4 file_text VARCHAR2(256) := 'Hello World';
5 file_id UTL_FILE.file_type;
6 BEGIN
7 file_id := UTL_FILE.fopen(file_Location, file_name, 'W');
8 UTL_FILE.put_line(file_id, file_text);
9 UTL_FILE.fclose(file_id);
10 EXCEPTION
11 WHEN UTL_FILE.INVALID_PATH
12 THEN dbms_output.put_line('Invalid path ' || SQLERRM);
13 WHEN OTHERS
14 THEN dbms_output.put_line('Others '|| SQLCODE || ' ' || SQLERRM);
15 END;
16 /
Invalid path ORA-29280: invalid directory path <====此处就报错了。
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.01
>