Я создаю хранимую процедуру для загрузки (impdp) дампа базы данных Datapump.
Я пытаюсь получить дату создания файла дампа (для сравнения с датой ранее загруженного дампа), используя DBMS_DATAPUMP.GET_DUMPFILE_INFO, как в этом примере .
При работе в анонимном блоке (как показано ниже) он работает нормально, выводя дату создания файла дампа.Однако, когда этот же блок адаптируется и компилируется в хранимой процедуре, я получаю ошибку ORA-39087 (имя каталога неверно).
DECLARE
dumpfile VARCHAR2(256) := 'my_file.dp';
dir VARCHAR2(30) := 'MY_DIR';
info ku$_dumpfile_info;
ft NUMBER;
BEGIN
sys.dbms_datapump.get_dumpfile_info(dumpfile, dir, info, ft);
FOR rec IN (SELECT * FROM TABLE (info) WHERE item_code = 6 ) LOOP
dbms_output.put_line(rec.value);
END LOOP;
END;
Каталог существует.Имя действительно.Когда я запускаю
SELECT * FROM datapump_dir_objs;
с тем же пользователем, я вижу, что пользователь имеет права READ и WRITE на каталог.Версия Oracle - 11g. Выпуск 11.2.0.4.0.
Есть сведения о том, что я делаю неправильно?
Заранее спасибо.