【发布时间】:2011-06-02 02:59:56
【问题描述】:
我正在尝试将 listener.ora 的内容写入另一个文件,而不在目录中进行硬编码。
最初当我将目录指定为:
'C:\app\OracleDB11g\product\11.2.0\dbhome_1\NETWORK\ADMIN'
但我不想硬编码,因为此脚本将用于不同的机器/数据库。
CREATE OR REPLACE DIRECTORY LISTENERDIR AS '%ORACLE_HOME%/NETWORK/ADMIN/';
declare
f utl_file.file_type;
fOUT utl_file.file_type;
s varchar2(200);
begin
f := utl_file.fopen('LISTENERDIR','listener.ora','R');
loop
utl_file.get_line(f,s);
fOUT := utl_file.fopen('OUTPUT','oraDBoutput.txt','A');
utl_file.put_line(fOUT,s);
utl_file.fclose(fOUT);
end loop;
exception
when NO_DATA_FOUND then
utl_file.fclose(f);
end;
/
drop directory LISTENERDIR;
我尝试过使用其他斜线、小型大写字母、\NETWORK\ADMIN 等不同的变体,甚至从dbms_system.get_env() 分配一个变量,但无济于事。
【问题讨论】:
标签: oracle file-io plsql oracle11g home-directory