我正在尝试将 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
,甚至从 the 中分配一个变量,dbms_system.get_env()
但无济于事。