在Oracle过程中使用游标
2008-05-15 11:06
441 查看
create or replace procedure SS_C002_tm14to13(p_errcode out number,
p_errtext out varchar2) is
/*
isbn转换条码,14位错误的转换成13位正确的
yc
2008-04-18
*/
cursor c_gckc is
select *
from t_gckc
where length(isbn)=14;
v_isbn varchar2(20);
v_tm varchar2(30); --条码
v_rowcount number(12, 0) := 0;
v_row number(12, 0) := 0;
v_sysdate date;
v_isbn2 varchar2(20); --原书号
v_rows number(12, 0) := 0;
begin
v_sysdate := sysdate;
--循环读取数据
for vc_gckc in c_gckc loop
v_rows := v_rows + 1;
v_isbn2 := vc_gckc.isbn; --原书号
v_tm:=substr(v_isbn2,1,12)||'0';
--计算库存是否有记录
select count(*)
into v_row
from t_gckc
where dm = vc_gckc.dm
and xydm = vc_gckc.xydm
and isbn = v_tm;
--没有,进行修改
if v_row = 0 then
update t_gckc
set isbn = v_tm, gxrq = v_sysdate
where dm = vc_gckc.dm
and xydm = vc_gckc.xydm
and isbn = vc_gckc.isbn;
end if;
--记录数
v_rowcount := v_rowcount + 1;
if v_rows = 1000 then
commit;
v_rows := 0;
end if;
end loop;
--提交数据
commit;
p_errcode := 0;
p_errtext := '共' || v_rowcount || '条记录转换成功';
exception
when others then
rollback;
p_errcode := -1;
p_errtext := '[' || v_isbn2 || ']错误信息:' || sqlerrm;
end;
p_errtext out varchar2) is
/*
isbn转换条码,14位错误的转换成13位正确的
yc
2008-04-18
*/
cursor c_gckc is
select *
from t_gckc
where length(isbn)=14;
v_isbn varchar2(20);
v_tm varchar2(30); --条码
v_rowcount number(12, 0) := 0;
v_row number(12, 0) := 0;
v_sysdate date;
v_isbn2 varchar2(20); --原书号
v_rows number(12, 0) := 0;
begin
v_sysdate := sysdate;
--循环读取数据
for vc_gckc in c_gckc loop
v_rows := v_rows + 1;
v_isbn2 := vc_gckc.isbn; --原书号
v_tm:=substr(v_isbn2,1,12)||'0';
--计算库存是否有记录
select count(*)
into v_row
from t_gckc
where dm = vc_gckc.dm
and xydm = vc_gckc.xydm
and isbn = v_tm;
--没有,进行修改
if v_row = 0 then
update t_gckc
set isbn = v_tm, gxrq = v_sysdate
where dm = vc_gckc.dm
and xydm = vc_gckc.xydm
and isbn = vc_gckc.isbn;
end if;
--记录数
v_rowcount := v_rowcount + 1;
if v_rows = 1000 then
commit;
v_rows := 0;
end if;
end loop;
--提交数据
commit;
p_errcode := 0;
p_errtext := '共' || v_rowcount || '条记录转换成功';
exception
when others then
rollback;
p_errcode := -1;
p_errtext := '[' || v_isbn2 || ']错误信息:' || sqlerrm;
end;
相关文章推荐
- ORACLE 存储过程使用技巧&游标技巧
- oracle存储过程中 使用游标做循环封装数据集
- oracle 存储过程之游标(loop)使用
- Oracle 存储过程中使用cursor 游标遍历数据
- oracle中存储 过程嵌套游标的使用
- Oracle存储过程使用游标遍历
- Oracle中加密解密的数据库函数,创建(包含游标)和使用存储过程
- Oracle 存储过程中使用cursor 游标遍历数据
- Oracle过程的使用,调用函数,调用过程,使用游标
- oracle 存储过程中使用游标
- .NET中使用ORACLE函数和过程并输出参数(3)使用游标返回列表
- oracle存储过程中使用Ref Cursor强类型游标返回结果集
- oracle 存储过程和游标的使用
- oracle使用游标 触发器的存储过程
- Oracle存储过程中使用游标来批量解析CLOB字段里面的xml字符串:
- Oracle存储过程中如何使用游标
- oracle中建表、游标、存储过程的使用方法入门
- oracle存储过程:游标使用,多重游标
- oracle 存储过程(其中使用了游标)例子
- oracle存储过程之insert的使用,含游标的使用