在 UNIX 上,当事务时间晚于系统时间时发送邮件

发布于 2024-11-18 10:37:21 字数 232 浏览 4 评论 0原文

我有一个在 oracle 上运行的查询,其输出为 sid、serial#、事务开始时间、sql_id、事务 id。

我需要做的是,每当事务的开始时间比系统时间晚 1 小时以上时,我需要使用该 sql_id 运行另一个查询并将其作为电子邮件发送。

如何比较ORACLE sql输出的这个时间并与系统时间进行比较?

我需要自动化这个过程并将其添加到 UNIX 上的 cron 中。

请帮忙!

I have a query to run on oracle that gives output as sid,serial#,transaction start time,sql_id,transaction id.

What I need to do is, whenever a transaction's start time is more than 1 hour behind the system time, I need to run another query with that sql_id and send it as an email.

How do I compare this time output from ORACLE sql and compare it with the system time?

I need to automate this process and add it to the cron on UNIX.

Please help!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

俏︾媚 2024-11-25 10:37:21

函数SYSDATE返回当前系统日期。当您减去两个日期时,您会得到以天为单位的差异。乘以 24,您会得到小时数的差异。

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

将为您提供 1 个多小时前开始的交易。如果您觉得更清楚,也可以使用区间算术。

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

The function SYSDATE returns the current system date. When you subtract two dates, you get a difference measured in days. Multiply by 24 and you get a difference in terms of hours.

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

will give you the transactions that started more than 1 hour ago. You can also use interval arithmetic if you find that clearer.

SELECT *
  FROM v$transaction
 WHERE sysdate - interval '1' hour > start_date 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文