存储过程示例
2009-08-20 11:08
155 查看
create or replace PROCEDURE CMPP_SUBMIT_REMOVE_PROCEDURE
Is
dEndTime date; -- 每次处理是时间点
-- 取得要处理的数据ID
cursor c_cmpp_submit(endTime date) is
select id from cmpp_submit
where ((ih_process <> 'insert_cmpp_submit' and ih_process <> 'wait_for_response')
or (ih_process = 'wait_for_response' and ih_retry <= 0))
and ih_timestamp < endTime and rownum<100001 ;
iId number; -- id
iCount number; -- 计数器
begin
--dEndTime := trunc((SYSDATE - 1/288),'mi'); -- 取得处理时间点,处理5分钟前的数据
dEndTime := trunc(SYSDATE,'mi'); -- 取得处理时间点
iCount := 0; -- 初始化计数
open c_cmpp_submit(dEndTime);
loop
fetch c_cmpp_submit into iId;
exit when c_cmpp_submit%notfound;
iCount := iCount+1;
insert into cmpp_submit_backup select * from cmpp_submit where id=iId;
delete from cmpp_submit where id=iId;
if ( iCount=1000 ) then -- 每1000条提交一次
begin
commit;
end;
end if;
end loop; -- end of loop
close c_cmpp_submit;
commit;
return;
EXCEPTION
WHEN OTHERS THEN
BEGIN
rollback;
if c_cmpp_submit%isopen then
close c_cmpp_submit;
end if;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
end CMPP_SUBMIT_REMOVE_PROCEDURE;本文出自 “云计算与大数据_jxwpx” 博客,请务必保留此出处http://jxwpx.blog.51cto.com/15242/193878
Is
dEndTime date; -- 每次处理是时间点
-- 取得要处理的数据ID
cursor c_cmpp_submit(endTime date) is
select id from cmpp_submit
where ((ih_process <> 'insert_cmpp_submit' and ih_process <> 'wait_for_response')
or (ih_process = 'wait_for_response' and ih_retry <= 0))
and ih_timestamp < endTime and rownum<100001 ;
iId number; -- id
iCount number; -- 计数器
begin
--dEndTime := trunc((SYSDATE - 1/288),'mi'); -- 取得处理时间点,处理5分钟前的数据
dEndTime := trunc(SYSDATE,'mi'); -- 取得处理时间点
iCount := 0; -- 初始化计数
open c_cmpp_submit(dEndTime);
loop
fetch c_cmpp_submit into iId;
exit when c_cmpp_submit%notfound;
iCount := iCount+1;
insert into cmpp_submit_backup select * from cmpp_submit where id=iId;
delete from cmpp_submit where id=iId;
if ( iCount=1000 ) then -- 每1000条提交一次
begin
commit;
end;
end if;
end loop; -- end of loop
close c_cmpp_submit;
commit;
return;
EXCEPTION
WHEN OTHERS THEN
BEGIN
rollback;
if c_cmpp_submit%isopen then
close c_cmpp_submit;
end if;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
end CMPP_SUBMIT_REMOVE_PROCEDURE;本文出自 “云计算与大数据_jxwpx” 博客,请务必保留此出处http://jxwpx.blog.51cto.com/15242/193878
相关文章推荐
- 一个sql的存储过程的简单示例
- MySql 存储过程使用示例
- SQL Server存储过程中使用表值作为输入参数示例
- .NET中调用存储过程示例
- mysql 存储过程、存储过程嵌套、自定义函数代码示例
- MySQL 存储过程和存储函数示例
- mysql 存储过程输入输出参数示例
- ASP调用SqlServer存储过程的经典示例(原创)
- 数据库--存储过程示例
- 在SQL Server 2000中insert的时候返回自动编号的id 存储过程示例[原]
- 存储过程示例
- 为Sybase ASA创建外部存储过程(java示例)
- MSSQLSERVER数据库- 分页存储过程示例
- 有限层树形数据转换成无限层树形数据的示例存储过程(MS SQL 2K)
- MySQL 存储过程传参数实现where id in(1,2,3,...)示例
- 存储过程示例:在存储过程中使用临时表
- Pro*C中调用存储过程的示例代码
- MyBatis 示例之存储过程(二)
- 调用存储过程示例
- SQL Server创建链接服务器的存储过程示例分享