create or replace procedure p_meger as
begin
MERGE INTO t_login_info_bak a
USING t_login_info b
ON (a.tid = b.tid)
WHEN MATCHED THEN
UPDATE
SET a.LOGIN_TIME = b.LOGIN_TIME,
a.LOGOFF_TIME = b.LOGOFF_TIME,
a.TERMINAL = b.TERMINAL,
a.HOST = b.HOST,
a.OS_USER = b.OS_USER,
a.IP_ADDRESS = b.IP_ADDRESS
where b.LOGIN_TIME is not null
WHEN NOT MATCHED THEN
INSERT
VALUES
(b.tid,b.USERNAME, b.LOGIN_TIME, b.LOGOFF_TIME, b.TERMINAL, b.HOST, b.OS_USER, b.IP_ADDRESS)
where b.LOGIN_TIME is not null;
commit;
/*
begin
MERGE INTO t_login_info_bak a
USING t_login_info b
ON (a.tid = b.tid)
WHEN MATCHED THEN
UPDATE
SET a.LOGIN_TIME = b.LOGIN_TIME,
a.LOGOFF_TIME = b.LOGOFF_TIME,
a.TERMINAL = b.TERMINAL,
a.HOST = b.HOST,
a.OS_USER = b.OS_USER,
a.IP_ADDRESS = b.IP_ADDRESS;
exception
when others then
MERGE INTO t_login_info_bak a
USING t_login_info b
ON (a.tid = b.tid)
WHEN NOT MATCHED THEN
INSERT
VALUES
(b.tid,
b.USERNAME,
b.LOGIN_TIME,
b.LOGOFF_TIME,
b.TERMINAL,
b.HOST,
b.OS_USER,
b.IP_ADDRESS);
end;
--if sql%notfound then
MERGE INTO t_login_info_bak a
USING t_login_info b
ON (a.tid = b.tid)
WHEN NOT MATCHED THEN
INSERT
VALUES
(b.tid,
b.USERNAME,
b.LOGIN_TIME,
b.LOGOFF_TIME,
b.TERMINAL,
b.HOST,
b.OS_USER,
b.IP_ADDRESS);
--end if;
*/
commit;
exception
when others then
dbms_output.put_line(sqlcode || sqlerrm);
end;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12961536/viewspace-1061415/
,如需转载,请注明出处,否则将追究法律责任。