Отправлять почту, когда время транзакции отстает от системного времени в UNIX - PullRequest
1 голос
/ 06 июля 2011

У меня есть запрос для запуска на Oracle, который выдает выходные данные в виде sid, serial #, времени начала транзакции, sql_id, id транзакции.

Что мне нужно сделать, так это то, что когда время начала транзакции превышает системное время более чем на 1 час, мне нужно выполнить другой запрос с этим sql_id и отправить его по электронной почте.

Как мне сравнить выходные данные ORACLE sql и сравнить их с системным временем?

Мне нужно автоматизировать этот процесс и добавить его в cron в UNIX.

Пожалуйста, помогите!

1 Ответ

1 голос
/ 06 июля 2011

Функция SYSDATE возвращает текущую системную дату.Вычитая две даты, вы получаете разницу в днях.Умножьте на 24, и вы получите разницу в часах.

SELECT *
  FROM v$transaction
 WHERE (sysdate - start_date)*24 > 1

даст вам транзакции, которые начались более 1 часа назад.Вы также можете использовать интервальную арифметику, если найдете это более понятным.

SELECT *
  FROM v$transaction
 WHERE sysdate - interval '1' hour > start_date 
...