Я хочу использовать отфильтрованные данные из сценария SQL и использовать его для запуска обновления в БД, используя отфильтрованный список для обновления.
1) У меня есть файл SQL, который ежедневно меняется и выглядит следующим образом:
select
'OBJECT1' object_name,
'PACKAGE BODY' object_type,
'999999' target_vers,
(Select statement which finds current version),
Decode (decode which comperes target version and current version) status
from DUAL union
select (те же 5 столбцов) .. ... ..
Может достигать 100+ вариантов выбора
2) Я хочу использовать только записи таблицы, целевая версия которых> текущая версия (иногда целевой версией может быть <текущая версия) </p>
3)Имя объекта соответствует каталогу .code, в котором находится соответствующий sql, view, pks.
4) После отфильтрованного шага я хочу запустить этот файл sql на сервере базы данных (похоже, что это нужно сделать в цикле).
5), поскольку я новичок в cmd /пакет не уверен, как это сделать.
for /f %%k in ('sqlplus -s %LOGIN%/%LOGIN%@%DBSERVER% @%SCRIPTPATH%\CHECK_CODE.sql') do (
set theValue=%%k
)
Приведенный выше код запускает упомянутый выше файл sql,
spool new.txt
select ......
spool off
/
exit
Это возвращает приведенный ниже текстовый файл
OBJECT_NAME OBJECT_TYPE TARGE
--------------------------- ------------ -----
INSTALLED_VERS
--------------------------------------------------------------------------------
STATUS
-------------------------
OBJECT_NAME PACKAGE BODY 72021
72021
--- INSTALLED ---
Теперь я хотел бы сделатьЦикл только через необходимые объекты для обновления БД.
for /f %%a in ('List of entries which need upgrade')
do (
sqlplus -s %LOGIN%/%LOGIN%@%DBSERVER% @%%a.[object_name].[object extension]
)
Вопрос в том, как я могу получить отфильтрованные данные из первого сценария SQL в массив в CMD, который затем использовал бы их для запуска файлов SQL (которые идентичны имя_объекта)