utl_file_dir参数用命令
SQL> ALTER SYSTEM SET UTL_FILE_DIR='d:\testtmp' scope=spfile;
不行,要把动态参数文件转换为静态参数文件,用文本编辑器编辑后再转为动态参数文件。
Oracle中有些参数是不能用ALTER SYSTEM SET命令修改的。
设置了,但现在再设怎么不行啊?
SQL> ALTER SYSTEM SET UTL_FILE_DIR='d:\testtmp' scope=spfile;
ALTER SYSTEM SET UTL_FILE_DIR='d:\testtmp' scope=spfile
*
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified
CREATE OR REPLACE PROCEDURE preadfiletest (
fpath IN STRING,
fname IN STRING,
max_num IN NUMBER
)
IS
file_handle UTL_FILE.file_type;
text_buffer STRING (1000);
line_num NUMBER;
BEGIN
DBMS_OUTPUT.put_line ('INPUT PATH=' || fpath);
DBMS_OUTPUT.put_line ('INPUT FILENAME=' || fname);
line_num := 0;
BEGIN
file_handle := UTL_FILE.fopen (fpath, fname, 'R', max_num);
LOOP
line_num := line_num + 1;
UTL_FILE.get_line (file_handle, text_buffer);
DBMS_OUTPUT.put_line ('LINE' || line_num || ' : ' || text_buffer);
END LOOP;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
RETURN;
WHEN UTL_FILE.invalid_path
THEN
DBMS_OUTPUT.put_line ('INVALID PATH');
WHEN UTL_FILE.invalid_mode
THEN
DBMS_OUTPUT.put_line ('INVALID MODE');
WHEN UTL_FILE.invalid_filehandle
THEN
DBMS_OUTPUT.put_line ('INVALID FILEHANDLE');
WHEN UTL_FILE.invalid_operation
THEN
DBMS_OUTPUT.put_line ('INVALID OPERATION');
WHEN UTL_FILE.read_error
THEN
DBMS_OUTPUT.put_line ('READ ERROR');
WHEN UTL_FILE.write_error
THEN
DBMS_OUTPUT.put_line ('WRITE ERROR');
WHEN UTL_FILE.internal_error
THEN
DBMS_OUTPUT.put_line ('INTERNAL ERROR');
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (SQLERRM);
END;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ('OTHER ERROR=' || SQLERRM);
END preadfiletest;