存储过程示例3

over:BEGIN
 #Routine body goes here...

 -- 同步备份epg_program表
 -- AUTHORS :zm
 -- 2013年8月7日11:29:02

 declare epgname varchar(500) default '';
 declare epgdate date default '';
 declare epgstime datetime default '';
 declare epgetime datetime default '';
 declare epgchannleid varchar(20) default '';
 declare epgprogramid1 varchar(20) default '';
 declare epgprogramid2 varchar(20) default '';
 declare epgpropertyid varchar(500) default '';

 DECLARE done INT DEFAULT 0; 

  DECLARE cur1 CURSOR FOR
  select a.epg_name, a.epg_time, a.epg_propertyid, a.epg_date, a.epg_fid, a.epg_fid2, a.epg_channleid, a.epg_etime
  from haierdb.epg_program a where a.epg_date not in (select DISTINCT epg_date from statistics.epg_program_syn) and LOCATE('55',a.epg_propertyid)>0;
 

   DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
--  DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
--  DECLARE CONTINUE HANDLER FOR SQLWARNING,NOT FOUND,SQLEXCEPTION set done = 1;
 
 
  create table if not EXISTS epg_program_syn (
  epg_id int(10) not null AUTO_increment,
  epg_name varchar(500),
  epg_date date,
  epg_stime datetime,
  epg_etime datetime,
  epg_channleid varchar(20),
  epg_programid varchar(20), 
  epg_propertyid varchar(500),
  PRIMARY key(epg_id),
  index(epg_channleid)
 );
 
 
   set a_oiRet = 0;
   set done = 0;
   open cur1;   
   REPEAT
    FETCH cur1 into epgname, epgstime, epgpropertyid, epgdate, epgprogramid1, epgprogramid2, epgchannleid, epgetime;
    IF NOT done THEN       
      if epgprogramid2 != '0'  then
        insert into `epg_program_syn`(`epg_name`, `epg_date`, `epg_stime`, `epg_etime`, `epg_channleid`, `epg_programid`, `epg_propertyid`)
        values(epgname, epgdate, epgstime, epgetime, epgchannleid, epgprogramid2, epgpropertyid);
      elseif epgprogramid1 != '0' then
        insert into `epg_program_syn`(`epg_name`, `epg_date`, `epg_stime`, `epg_etime`, `epg_channleid`, `epg_programid`, `epg_propertyid`)
        values(epgname, epgdate, epgstime, epgetime, epgchannleid, epgprogramid1, epgpropertyid);
      end if;     
    end if;
   UNTIL done END REPEAT;
   close cur1;
   leave over;


END

 

 

参数:OUT a_oiRet int

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值