Oracle fa distinzione tra maiuscole e minuscole. Ma tutti i nomi in SQL e PL/SQL vengono automaticamente convertiti in maiuscolo a meno che non siano racchiusi tra virgolette.
Quindi:
CREATE DIRECTORY test_dir AS 'c:\';
viene effettivamente eseguito come:
CREATE DIRECTORY TEST_DIR AS 'c:\';
Pertanto la directory che hai definito si chiama TEST_DIR
. Se ti riferisci ad esso in una stringa (al contrario di un nome di simbolo in SQL o PL/SQL), devi usare 'TEST_DIR'
. 'test_dir'
non funzionerà.
Quindi prova:
fileHandler := UTL_FILE.FOPEN('TEST_DIR', 'test_file.txt', 'W');