一个oracle存储的基本问题,%rowtype 前面的表名需要动态获取咋办。
CREATE OR REPLACE PROCEDURE up_czrk_ryjbxx (tab varchar2 )
as
sfzh varchar2(100);
cunt number;
czrk tab%rowtype; --编译时不通过, 有没有办法绕过去呢?
xhs number default 0;
CURSOR c_czrk IS SELECT * FROM tab;
begin
OPEN c_czrk; --打开游标
LOOP
FETCH c_czrk INTO czrk; --提取游标
exit when c_czrk%notfound;
select 1 into cunt from ry_jbxx where sfzh=czrk.gmsfhm and rownum=1;
if cunt=1 then
--update
select 1 from dual;
else
--insert
select 1 from dual;
end if;
xhs:=xhs+1;
if( mod(xhs,10000)=0) then
commit;
end if;
END LOOP;
commit;
CLOSE c_czrk; --关闭游标
end;
...全文
相关推荐
Oracle PL/SQL中如何使用%TYPE和%ROWTYPE
Oracle PL/SQL中如何使用%TYPE和%ROWTYPE
在Oracle数据库里用存储过程定期分割表
Oracle数据库里存放着各种各样的数据,其中有一些数据表会随着时间的推移,越来越大。这样的信息又和时间紧密相关,有没有办法让这些日志表能到时间自动分割成历史年月的表呢? 本文介绍了用存储过程定期分割表的方法。
oracle 在一个存储过程中调用另一个返回游标的存储过程
实际项目当中经常需要在一个存储过程中调用另一个存储过程返回的游标,本文列举了两种情况讲述具体的操作方法。
oracle存储过程各种写法
此文档对oracle存储过程做了详细讲解,游标用法 变量定义,触发器,序列,DML DCL DDL
oracle存储过程使用文档
oracle存储过程使用文档中描述了存储过程创建的过程,和一些注意事项


