CREATE OR REPLACE PROCEDURE S_存储过程名(最小时间 DATE,最大时间 DATE)
AS
BEGIN
MERGE INTO 目标表
USING (SELECT 源表字段
FROM 源表 WHERE 源表.结束时间 >=最小时间 AND 源表.结束时间 <= 最大时间) 源
ON(目标表.主键 = 源.主键)
WHEN MATCHED THEN
UPDATE SET 目标表.字段 = 源.字段 --除主键字段外
,目标表.时间 = SYSDATE
WHEN NOT MATCHED THEN
INSERT INTO (目标表.字段)VALUES(源.字段,SYSDATE);
COMMIT;
EXCEPTION WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(SQLERRM);
ROLLBACK;
END S_存储过程名;