Может ли Oracle UTL_FILE одновременно открывать несколько файлов?

Можно ли использовать Oracle UTL_FILE для одновременного открытия нескольких файлов?

В настоящее время я не могу проверить это сам, так как у меня нет разрешений и я не могу предоставить их себе, чтобы иметь возможность открывать и записывать файлы с UTL_FILE.


person derekj    schedule 21.07.2017    source источник
comment
Да, каждая файловая операция использует дескриптор, созданный с помощью функции FOPEN.   -  person OldProgrammer    schedule 21.07.2017


Ответы (1)


Да, это возможно. Каждый вызов utl_file.fopen() и utl_file.fopen_nchar() возвращает другую запись файлового дескриптора. Сохраните каждый результат в другой переменной 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;
/
person peter.hrasko.sk    schedule 25.07.2017