动态游标,动态SQL

create or replace procedure PRO_AJ_GB_JBXX
(p_tablename in varchar2,p_zhsjc in date,P_SJW IN VARCHAR2)

is

v_ajbh aj_gb_jbxx.ajbh%type;
v_zab aj_gb_jbxx.zab%type;
v_fab1 aj_gb_jbxx.fab1%type;
v_fab2 aj_gb_jbxx.fab2%type;
v_fasjsx aj_gb_jbxx.fasjsx%type;
v_fasjxx aj_gb_jbxx.fasjxx%type;
v_fadqh aj_gb_jbxx.fadqh%type;
v_fadxz aj_gb_jbxx.fadxz%type;
v_fadzbh aj_gb_jbxx.fadzbh%type;
v_fxsj aj_gb_jbxx.fxsj%type;
v_ladw aj_gb_jbxx.ladw%type;
v_larq aj_gb_jbxx.larq%type;
v_cbdw aj_gb_jbxx.cbdw%type;
v_aqms aj_gb_jbxx.aqms%type;
v_ywgl aj_gb_jbxx.ywgl%type;
v_zhsjc aj_gb_jbxx.zhsjc%type;
V_SFWK NUMBER;
v_sfzx varchar2(5);

TYPE CURSOR_XX IS REF CURSOR;
CC CURSOR_XX;
begin

OPEN CC FOR 'select ajbh, zab, fab1, fab2, fasjsx, fasjxx, fadqh, fadxz, fadzbh, fxsj, ladw, larq, cbdw, aqms, ywgl, zhsjc from
'||p_tablename||' where zhsjc >= :1 and zhsjc <= ( select max(zhsjc) from '||p_tablename||')' using p_zhsjc;
LOOP
FETCH CC INTO v_ajbh, v_zab, v_fab1, v_fab2, v_fasjsx, v_fasjxx, v_fadqh, v_fadxz, v_fadzbh, v_fxsj, v_ladw, v_larq, v_cbdw, v_aqms, v_ywgl, v_zhsjc;
EXIT WHEN CC%NOTFOUND;

SELECT COUNT(*) INTO V_SFWK FROM AJ_GB_JBXX WHERE ajbh = V_ajbh;
if v_sfzx = '0' or v_sfzx is null then
IF V_SFWK <= 0 THEN
insert into aj_gb_jbxx (ajbh, zab, fab1, fab2, fasjsx, fasjxx, fadqh, fadxz, fadzbh, fxsj, ladw, larq, cbdw, aqms, ywgl, zhsjc)
values (v_ajbh, v_zab, v_fab1, v_fab2, v_fasjsx, v_fasjxx, v_fadqh, v_fadxz, v_fadzbh, v_fxsj, v_ladw, v_larq, v_cbdw, v_aqms, v_ywgl, v_zhsjc);

ELSE
IF P_SJW <> '1' THEN
UPDATE aj_gb_jbxx SET YWGL= '31' WHERE ajbh = V_ajbh;

ELSE
UPDATE aj_gb_jbxx SET ajbh=v_ajbh, zab=v_zab, fab1=v_fab1, fab2=v_fab2, fasjsx=v_fasjsx,
fasjxx=v_fasjxx, fadqh=v_fadqh, fadxz=v_fadxz, fadzbh=v_fadzbh, fxsj=v_fxsj, ladw=v_ladw,
larq=v_larq, cbdw=v_cbdw, aqms=v_aqms,ywgl= '31', zhsjc=v_zhsjc WHERE ajbh = V_ajbh;

END IF;
END IF;
else
IF V_SFWK <= 0 THEN
insert into aj_gb_jbxx (ajbh, zab, fab1, fab2, fasjsx, fasjxx, fadqh, fadxz, fadzbh, fxsj, ladw, larq, cbdw, aqms, ywgl, zhsjc)
values (v_ajbh, v_zab, v_fab1, v_fab2, v_fasjsx, v_fasjxx, v_fadqh, v_fadxz, v_fadzbh, v_fxsj, v_ladw, v_larq, v_cbdw, v_aqms, v_ywgl, v_zhsjc);

ELSE
IF P_SJW <> '1' THEN
UPDATE aj_gb_jbxx SET YWGL= '31' WHERE ajbh = V_ajbh;

ELSE
UPDATE aj_gb_jbxx SET ajbh=v_ajbh, zab=v_zab, fab1=v_fab1, fab2=v_fab2, fasjsx=v_fasjsx,
fasjxx=v_fasjxx, fadqh=v_fadqh, fadxz=v_fadxz, fadzbh=v_fadzbh, fxsj=v_fxsj, ladw=v_ladw,
larq=v_larq, cbdw=v_cbdw, aqms=v_aqms,ywgl= '31', zhsjc=v_zhsjc WHERE ajbh = V_ajbh;

END IF;
END IF;
end if;
END LOOP;
CLOSE CC;
end PRO_AJ_GB_JBXX;

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8345941/viewspace-953448/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8345941/viewspace-953448/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值