Sybase:循环调用存储过程 Sybase:循环调用存储过程

一、日期循环

declare @c_count int
declare @rq int
select @c_count=0 
--获取两个日期之间的天数
select DateDiff(day,20170101,getdate())
while @c_count<=541
    begin
        select convert(numeric(8,0),CONVERT(varchar(8),dateadd(dd,@c_count,20170101),112)) into @rq
        exec DBA.P_PROESS(@rq)
        select @c_count= @c_count +1
    end

二、游标循环

    declare @c_orgname  varchar(50);
    declare @c_pk_deptdoc varchar(20);

    declare c_zborg  dynamic scroll  cursor  
    for select a.orgname,a.pk_deptdoc from table1;

    -- 打开游标  
    open c_zborg with hold; 
    fetch  next c_zborg into  @c_orgname, @c_pk_deptdoc;  
    -- 循环所有行 
    while @@SQLSTATUS = 0 loop
        insert into dba.table2(orgname,pk_deptdoc) values(@c_orgname,@c_pk_deptdoc);
    fetch  next c_zborg into @c_orgname, @c_pk_deptdoc;
    end loop;
    -- 关闭游标  
    close c_zborg;
    --释放资源
    deallocate cursor c_zborg;
    --end