Oracle 18C: ошибка при создании объекта каталога в plsql
Я пробовал простой сценарий SQL, где я пытаюсь открыть файл и записать содержимое с помощью объекта каталога
SET SERVEROUTPUT ON
DECLARE
p_error_file UTL_FILE.FILE_TYPE;
p_debug_dir varchar2(2048):='/home/Oracle18C/';
PROCEDURE file_open(p_target_dir IN VARCHAR2,
p_file_name IN VARCHAR2,
p_write IN BOOLEAN,
p_error_file2 OUT UTL_FILE.FILE_TYPE)
IS
BEGIN
CREATE DIRECTORY p_target_dir_obj AS p_target_dir ;
GRANT READ ON DIRECTORY p_target_dir_obj TO user;
p_error_file2 := UTL_FILE.FOPEN(p_target_dir_obj, p_file_name, 'W', 2001);
END;
BEGIN
-- p_error_file := file_open(p_debug_dir,'test_18c1.txt', TRUE);
file_open(p_debug_dir,'test_18c1.txt', TRUE,p_error_file);
UTL_FILE.PUT_LINE(p_error_file, 'This is the first line');
UTL_FILE.PUT_LINE(p_error_file, 'This is the second line');
UTL_FILE.PUT_LINE(p_error_file, 'This is the third line');
UTL_FILE.fclose(p_error_file);
END;
/
Следующая ошибка обнаружена
ORA-06550: строка 10, столбец 5: PLS-00103: Обнаружен символ "СОЗДАТЬ" при ожидании одного из следующего:
(начинайте регистр, объявляйте выход для goto, если цикл mod null pragma поднимать возвращать возвращать select update, в то время как с<< продолжить закрывать текущий удалить выборку блокировать вставить открытый откат сохранить точку сохранения set sql выполнить commit для очистки канала слияния
Пробовал со всеми возможными предложениями, но ничего не получилось Это правильное место для создания объектов каталога?