O Oracle diferencia maiúsculas de minúsculas. Mas todos os nomes em SQL e PL/SQL são automaticamente convertidos em maiúsculas, a menos que estejam entre aspas duplas.
Então:
CREATE DIRECTORY test_dir AS 'c:\';
é realmente executado como:
CREATE DIRECTORY TEST_DIR AS 'c:\';
Portanto, o diretório que você definiu é chamado
TEST_DIR
. Se você se referir a ele em uma string (ao invés de um nome de símbolo em SQL ou PL/SQL), você deve usar 'TEST_DIR'
. 'test_dir'
não vai funcionar. Assim tente:
fileHandler := UTL_FILE.FOPEN('TEST_DIR', 'test_file.txt', 'W');