一个oracle存储的基本问题,%rowtype 前面的表名需要动态获取咋办。

corner1988 2019-06-14 02:51:55
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;
...全文
243 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
如·月 2019-12-05
  • 打赏
  • 举报
回复
楼主可以尝试一下动态sql,不过也不会太好搞,http://blog.sina.com.cn/s/blog_70b55b1a0102z964.html
ZJHZ_叶 2019-06-14
  • 打赏
  • 举报
回复
(tab varchar2 ) 不要

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧