У меня есть вариант использования, когда набор хранимых процедур вызывается (с использованием планировщика), который состоит из следующего шаблона работы:
- Установите некоторые переменные, такие как текущая дата подачи заявки и т. д. [Готово]
- Выполнение запросов к таблицам БД для заполнения глобальных временных таблиц в соответствии с пользовательскими вариантами [Готово]
- Экспортируйте эти результаты в соответствии с отчетом (используя предложение where во временных таблицах) в формате файла CSV [ Need Help ]
- Каталог файлов CSV основан на типе отчета, а имя файла CSV является динамическим в зависимости от дня и времени. [Нужна помощь]
Предполагается, что эти хранимые процедуры планируются и выполняются ежедневно для своевременного создания отчетов. Теперь мы не можем выполнить, как мы можем экспортировать этот набор результатов, который присутствует во временных таблицах.
Я попробовал функциональность SPOOL, но похоже, что она основана на SQLPLUS, и не уверен, что мы можем использовать ее в хранимой процедуре. ВСЕГДА ли мы можем использовать ее в этом потоке в хранимой процедуре. Если нет - каковы возможные варианты вызова SPOOL в Oracle 19c? Если да, то данные временной таблицы будут доступны, поскольку мы поняли, что они доступны только на уровне сеанса. Пожалуйста, дайте нам знать, если у вас есть обходной путь для того же.
set term off
set feed off
set feedback off
set sqlformat csv
spool 'D:\test\outputExample.csv'
select Date_Time,a,b,c,Net_Amount from temp_tbl1 ;
spool off
Поскольку объем данных для каждого отчета csv выше, я избегаю использования функции utl_file. Существуют ли какие-либо функции, доступные в Oracle 19c для того же?
Спасибо