Oracle UTL_FILE 可以同时打开多个文件吗?
Can Oracle UTL_FILE have multiple files open at the same time?
是否可以使用 Oracle UTL_FILE 同时打开多个文件?
目前,我无法自行测试,因为我没有权限,也无法授予自己权限,无法使用 UTL_FILE 打开和写入文件。
是的,这是可能的。每次调用 utl_file.fopen()
和 utl_file.fopen_nchar()
returns 不同的文件描述符记录。将每个结果存储到不同的 PL/SQL 变量中,这样就安全了。
declare
l_file_1 utl_file.file_type;
l_file_2 utl_file.file_type;
begin
l_file_1 := utl_file.fopen(
location => 'MY_INPUT_DIRECTORY',
filename => 'my_input_file.txt',
open_mode => 'rb'
);
l_file_2 := utl_file.fopen(
location => 'MY_OUTPUT_DIRECTORY',
filename => 'my_output_file.txt',
open_mode => 'wb'
);
/*
your multi-file handling logic comes here...
*/
utl_file.fclose_all();
exception
when others then
utl_file.fclose_all();
raise;
end;
/
是否可以使用 Oracle UTL_FILE 同时打开多个文件?
目前,我无法自行测试,因为我没有权限,也无法授予自己权限,无法使用 UTL_FILE 打开和写入文件。
是的,这是可能的。每次调用 utl_file.fopen()
和 utl_file.fopen_nchar()
returns 不同的文件描述符记录。将每个结果存储到不同的 PL/SQL 变量中,这样就安全了。
declare
l_file_1 utl_file.file_type;
l_file_2 utl_file.file_type;
begin
l_file_1 := utl_file.fopen(
location => 'MY_INPUT_DIRECTORY',
filename => 'my_input_file.txt',
open_mode => 'rb'
);
l_file_2 := utl_file.fopen(
location => 'MY_OUTPUT_DIRECTORY',
filename => 'my_output_file.txt',
open_mode => 'wb'
);
/*
your multi-file handling logic comes here...
*/
utl_file.fclose_all();
exception
when others then
utl_file.fclose_all();
raise;
end;
/