2011-08-16 19 views
0

次のクエリであなたの助けが必要です。ループ内で実行するSQLクエリ

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); 

は、私は(19507から19508から、次の1時間に19508から19509にsnap_id値の変化)の結果を得るために、上記のクエリごとに時間を実行する必要があります。私は1日中、19507から開始され、19530で終了した開始スナップIDを言うことにしましょう。私は開始ID(19507)からそれを実行し、次のID(19508)とそれを比較するスクリプトを書く際に助けが必要ですnext id(19508)は開始IDとなるので、終了ID(19530)に達するまで実行されます。

答えて

0

DBMS_SCHEDULERを使用できます。お使いのOracle 10gのバージョン私はちょっと混乱しているのですが、SQLやORACLEで実装しようとしているところがあります。原因はOracle 10gでタグ付けされており、あなたの質問はSQLで述べられています。

しかし、あなたはのOracle 10gを使用している場合は、9iのオラクルに他のいくつかのバージョンv7.3.4をuingている包みuは、DBMS_SCHEDULERを使用してそれを達成することができ、タスクをスケジュールするDBMS_JOBを使用しています。

uがMS SQL Serverのを使用している場合、私たちは、スケジュールされたジョブを作成することによって、これを達成することができます。 SQL Management Studioで、サーバーに移動し、SQL Serverエージェント項目を展開し、最後にジョブフォルダを展開してスケジュールされたジョブを表示、編集、追加します。

関連する問題