Параметр даты для определения диапазона дат SELECT в сценарии оболочки - PullRequest
0 голосов
/ 26 января 2019

Я пытаюсь написать сценарий оболочки, который будет использовать запрос SELECT и помещать записи в файл отчета в формате csv. Этот сценарий будет запланирован через cron и в зависимости от даты будет генерировать отчет ежедневно, еженедельно и раз в полгода.

Мы используем базу данных Oracle sqlplus. Прости меня, так как я немного мокрый за ушами.

Мой план состоит в том, чтобы присвоить переменным предложение WHERE в SELECT. Один из них является sysdate, а другой - целью (количество дней назад) и использует эти переменные даты для установки диапазона дат в самом запросе SELECT.

Прямо сейчас,

У меня есть SELECT в сценарии sql, который помещает результаты в файл csv для ежедневных задач (-1). Однако проблема в том, что я должен составлять отчеты по всем трем отчетам в одном сценарии, поэтому я не думаю, что этот маршрут будет работать. Мой первоначальный план состоял в том, чтобы просто вызвать и выполнить этот сценарий sql для создания файла csv, а затем переместить этот файл в правильный каталог (так как существует 3 каталога ежедневно / еженедельно / раз в полгода), выполнив команду Сравнение даты if / fi в скрипте.

sqlScript.sql

ВЫБРАТЬ ... ОТ ... ГДЕ ... И trunc (statusTimeStamp)> = trunc (sysdate-1); <--- Это ежедневный отчет </p>

script.sh

! / Bin / Баш

... sqlplus запускает sqlScript.sql ... пиши в логи

Это сводная информация о том, как у меня настроен сценарий sh и файл sql.

...