SQL Query在循环中执行

时间:2011-08-16 11:33:55

标签: oracle10g

我需要您的帮助以下查询。

SELECT
 SQL_ID,
 SNAP_ID,
 EXECUTIONS_TOTAL,
 EXECUTIONS_DELTA,
 CPU_TIME_TOTAL,
 CPU_TIME_DELTA,
 ELAPSED_TIME_TOTAL,
 ELAPSED_TIME_DELTA
from
 WRH$_SQLSTAT
where
 SQL_ID='807mzfr04qt1c' and
 SNAP_ID in (19507,19508);

我必须每小时执行上述查询才能得到结果(snap_id值在19507-19508的下一小时内更改为19508-19509)。让我们说一整天开始的snap id从19507开始并在19530结束。我需要帮助编写一个脚本,它应该从start id(19507)执行它并将它与下一个id(19508)和next id(19508)成为开始id,依此类推,直到达到结束id(19530)为止。

1 个答案:

答案 0 :(得分:0)

您可以使用DBMS_SCHEDULER。为您的oracle 10g版本。我有点困惑你在SQL或ORACLE中尝试实现它,因为你的问题在oracle 10g中被标记,你用SQL提到了你的问题。

但是如果你使用 oracle 10g 你可以使用 DBMS_SCHEDULER 来实现它,那么你正在使用其他版本 v7.3.4到9i oracle ,使用 DBMS_JOB 来安排任务。

如果您正在使用 MS SQL Server ,我们可以通过创建预定作业来实现此目的。在SQL Management Studio中,导航到服务器,然后展开SQL Server代理项,最后展开Jobs文件夹以查看,编辑和添加预定作业。