ITPub博客

首页 > 数据库 > Oracle > p_meger

p_meger

原创 Oracle 作者:simkyo 时间:2013-11-28 11:08:47 0 删除 编辑
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博客 ” ,链接:http://blog.itpub.net/12961536/viewspace-1061415/,如需转载,请注明出处,否则将追究法律责任。

上一篇: guocheng1
下一篇: 统计1
请登录后发表评论 登录
全部评论

注册时间:2013-06-20

  • 博文量
    193
  • 访问量
    137670