每小時統計表 A 中 FLOW 欄位總和,寫入表 B 的 FLOW_SUM 欄位。
CREATE OR REPLACE PROCEDURE proc_flow_sum IS
BEGIN
MERGE INTO table_b b
USING (SELECT SUM(flow) AS total_flow FROM table_a) a
ON (1=1) -- 假設 B 只有一列統計資料,或依主鍵關聯
WHEN MATCHED THEN UPDATE SET b.flow_sum = a.total_flow
WHEN NOT MATCHED THEN INSERT (flow_sum) VALUES (a.total_flow);
COMMIT;
END;
/
DBMS_SCHEDULER):BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'JOB_FLOW_SUM_HOURLY',
job_type => 'STORED_PROCEDURE',
job_action => 'PROC_FLOW_SUM',
start_date => SYSTIMESTAMP,
repeat_interval => 'FREQ=HOURLY; INTERVAL=1',
enabled => TRUE,
comments => '每小時統計 FLOW 總和'
);
END;
/
SELECT * FROM USER_SCHEDULER_JOBS WHERE JOB_NAME = 'JOB_FLOW_SUM_HOURLY';
SELECT * FROM USER_SCHEDULER_JOB_RUN_DETAILS WHERE JOB_NAME = 'JOB_FLOW_SUM_HOURLY' ORDER BY LOG_DATE DESC;
CREATE JOB 權限及對表的 DML 權限。