CREATE OR REPLACE PROCEDURE BJPJYXK_HF_SD(
sqid_p IN VARCHAR2,--申请单ID
xkbh_p IN VARCHAR2,--新生成的许可证编号
flag OUT VARCHAR2--标识位
)
AS
ywlx VARCHAR2(50);--业务类型(0:新办,1:变更)
v_raise EXCEPTION;--自定义异常
zsid_p VARCHAR2(50);--许可证ID
yxkzh_p VARCHAR2(50);--原许可证编号
xkzlx_p VARCHAR2(50);--许可证类型
v_xkzh varchar2(50); --京药到京食药临时变量
BEGIN
-- routine body goes here, e.g.
DBMS_OUTPUT.PUT_LINE('==============许可证核发审定开始================');
--获取许可证类型
SELECT YWLX INTO ywlx FROM XZXK_BJPJYWS_HF_SQ WHERE SQID=sqid_p;
--许可证类型
SELECT xkzlx INTO xkzlx_p FROM GG_XKZ_BJPSCWS WHERE SQID=sqid_p;
--获取受理阶段生成许可证信息记录
SELECT ZSID,XMZH INTO zsid_p,yxkzh_p FROM GG_XKZ_BJPSCWS WHERE SQID=sqid_p;

--更新许可证信息
IF ywlx = '0' THEN
IF xkzlx_p = '1' THEN--经营新许可证号
--update gg_xkz_bjpscws set czzt='I',DATEXC='11',INSTNUM=f_getslbs(),LASTDATE=sysdate where czzt='V' and XMZH=xkbh_p;
UPDATE gg_xkz_bjpscws set
XMZH = xkbh_p,
FZRQ = to_char(SYSDATE,'yyyymmdd'),
YXQQSRQ = to_char(SYSDATE,'yyyymmdd'),
YXQJZRQ = to_char(add_months(sysdate, 48) - 1,'yyyymmdd'),
XKZZT = '1',
DYBS = '000',
GSBS = 'N',
CZZT = 'V',
INSTNUM = f_getslbs(),
LASTDATE = sysdate,
DATEXC = '11'
WHERE ZSID = zsid_p;
--更新申请表许可证号
UPDATE XZXK_BJPJYWS_HF_SQ SET BJBS='Y',DATEXC='11',INSTNUM=f_getslbs(),LASTDATE=sysdate WHERE sqid=sqid_p;
--将申请表插入全部信息表中
INSERT INTO XZXK_BJPSCWS_XX_QB
(XKZID,XKZH,qyid,QYMC,QYXZ,QYZCDZ,QYZCDZSZQX,QYZCDZSZJD,QYZCDZYZBM,JYDZ,JYDZSZQX,JYDZSZJD,JYDZYZBM,BGDZ,BGDZSZQX,BGDZSZJD,
BGDZYZBM,FDDBR,ZGRS,YTJRS,GDZC,SYMJ,TJCLLX,BGCS,XKFW,QTCL,DATEXC,XKZLX,INSTNUM,LASTDATE,LXR,LXDH)
SELECT zsid_p,xkbh_p,QYID,QYMC,QYXZ,QYZCDZ,QYZCDZSZQX,QYZCDZSZJD,QYZCDZYZBM,JYDZ,JYDZSZQX,JYDZSZJD,JYDZYZBM,BGDZ,BGDZSZQX,BGDZSZJD,
BGDZYZBM,FDDBR,ZGRS,YTJRS,GDZC,SYMJ,'','',XKXM,QTCL,'11',XKZLX,f_getslbs(),sysdate,LXR,LXDH
FROM XZXK_BJPJYWS_HF_SQ WHERE SQID=sqid_p;

--更新全表信息(根据许可证信息)
UPDATE XZXK_BJPSCWS_XX_QB SET (XKZZT,FZRQ,SCFZRQ,YXQQSRQ,YXQJZRQ,ZZJGDM,FZJGDM,FZJGMC,DYBS,GSBS,XKZLX,QYMC,FDDBR,QYZCDZ,BGDZ,JYDZ,JYDZSZQX,JYDZSZJD,XKFW)=
(SELECT XKZZT,FZRQ,FZRQ,YXQQSRQ,YXQJZRQ,ZZJGDM,FZJGDM,FZJGMC,DYBS,GSBS,XKZLX,QYMC,FDDBR,QYDZ,BGDZ,JYDZ,JYDZSZQX,JYDZSZJD,XKFW
FROM GG_XKZ_BJPSCWS WHERE SQID=sqid_p) WHERE xkzid=zsid_p;

--插入人员信息表
INSERT INTO XZXK_BJPSCWS_XX_RYXX(ZJ,XKZH,QYID,XM,ZJLX,ZJH,XL,SXZY,ZC,INSTNUM,LASTDATE,DATEXC,XKZID)
SELECT sys_guid(),xkbh_p,QYID,FDDBR,ZJLX,ZJH,XL,SXZY,ZC,f_getslbs(),sysdate,'11',zsid_p
FROM XZXK_BJPJYWS_HF_SQ WHERE SQID=sqid_p;

UPDATE xzxk_bjpscws_xx_ryxx SET(xm)=
(SELECT FDDBR
FROM GG_XKZ_BJPSCWS WHERE SQID=sqid_p) WHERE xkzid=zsid_p;
ELSIF xkzlx_p = '3' THEN--生产使用经营许可证号
--更新生产许可证为无效
update gg_xkz_bjpscws set czzt='I',DATEXC='11',INSTNUM=f_getslbs(),LASTDATE=sysdate where czzt='V' and XMZH=yxkzh_p;
-- 将京药变更为京食药
v_xkzh := REPLACE(yxkzh_p, '京药', '京食药');
--新许可证为有效
UPDATE gg_xkz_bjpscws set
XMZH = v_xkzh,
FZRQ = to_char(SYSDATE,'yyyymmdd'),
YXQQSRQ = to_char(SYSDATE,'yyyymmdd'),
YXQJZRQ = to_char(add_months(sysdate, 48) - 1,'yyyymmdd'),
XKZZT = '1',
DYBS = '000',
GSBS = 'N',
CZZT = 'V',
INSTNUM = f_getslbs(),
LASTDATE = sysdate,
DATEXC = '11'
WHERE ZSID = zsid_p;

--更新申请表许可证号
UPDATE XZXK_BJPJYWS_HF_SQ SET BJBS='Y',DATEXC='11',INSTNUM=f_getslbs(),LASTDATE=sysdate WHERE sqid=sqid_p;
--数据交换删除使用
/* INSERT INTO PUB_TABLE_DATA_DELEXC(id, tablename,tablepkname,tablepk,delflag,instnum,lastdate,datexc)
select sys_guid(),'XZXK_BJPSCWS_XX_QB','XKZID',xkzid as tablepk,'N',f_getslbs(),sysdate, '11'
from XZXK_BJPSCWS_XX_QB where xkzh=yxkzh_p;
*/
--将申请表插入全部信息表中
update XZXK_BJPSCWS_XX_QB set
(XKZH,qyid,QYMC,QYXZ,QYZCDZ,QYZCDZSZQX,QYZCDZSZJD,QYZCDZYZBM,JYDZ,JYDZSZQX,JYDZSZJD,JYDZYZBM,BGDZ,BGDZSZQX,BGDZSZJD,
BGDZYZBM,FDDBR,ZGRS,YTJRS,GDZC,SYMJ,TJCLLX,BGCS,XKFW,QTCL,DATEXC,XKZLX,INSTNUM,LASTDATE,LXR,LXDH)
=(SELECT v_xkzh,QYID,QYMC,QYXZ,QYZCDZ,QYZCDZSZQX,QYZCDZSZJD,QYZCDZYZBM,JYDZ,JYDZSZQX,JYDZSZJD,JYDZYZBM,BGDZ,BGDZSZQX,BGDZSZJD,
BGDZYZBM,FDDBR,ZGRS,YTJRS,GDZC,SYMJ,'','',XKXM,QTCL,'11',XKZLX,f_getslbs(),sysdate,LXR,LXDH
FROM XZXK_BJPJYWS_HF_SQ WHERE SQID=sqid_p) where xkzh=yxkzh_p;

--更新全表信息(根据许可证信息)
UPDATE XZXK_BJPSCWS_XX_QB SET (XKZZT,FZRQ,SCFZRQ,YXQQSRQ,YXQJZRQ,ZZJGDM,FZJGDM,FZJGMC,DYBS,GSBS,XKZLX,QYMC,FDDBR,QYZCDZ,BGDZ,SCDZ,SCDZSZQX,SCDZSZJD,XKFW)=
(SELECT XKZZT,FZRQ,FZRQ,YXQQSRQ,YXQJZRQ,ZZJGDM,FZJGDM,FZJGMC,DYBS,GSBS,XKZLX,QYMC,FDDBR,QYDZ,BGDZ,SCDZ,SCDZSZQX,SCDZSZJD,XKFW
FROM GG_XKZ_BJPSCWS WHERE SQID=sqid_p) where xkzh=v_xkzh;

--数据交换删除使用 人员表
INSERT INTO PUB_TABLE_DATA_DELEXC(id, tablename,tablepkname,tablepk,delflag,instnum,lastdate,datexc)
select sys_guid(),'xzxk_bjpscws_xx_ryxx','zj',zj as tablepk,'N',f_getslbs(),sysdate, '11' from xzxk_bjpscws_xx_ryxx where xkzh=yxkzh_p;

delete xzxk_bjpscws_xx_ryxx where xkzh=yxkzh_p;
--插入人员信息表
INSERT INTO XZXK_BJPSCWS_XX_RYXX(ZJ,XKZH,QYID,XM,ZJLX,ZJH,XL,SXZY,ZC,INSTNUM,LASTDATE,DATEXC,XKZID)
SELECT sys_guid(),v_xkzh,QYID,FDDBR,ZJLX,ZJH,XL,SXZY,ZC,f_getslbs(),sysdate,'11',zsid_p
FROM XZXK_BJPJYWS_HF_SQ WHERE SQID=sqid_p;

UPDATE xzxk_bjpscws_xx_ryxx SET(xm)=
(SELECT FDDBR
FROM GG_XKZ_BJPSCWS WHERE SQID=sqid_p) WHERE xkzid=zsid_p;

ELSE
Raise v_raise;
END IF;

ELSIF ywlx = '1' THEN
--把原来的有效许可证更改为无效
update gg_xkz_bjpscws set czzt='I',DATEXC='11',INSTNUM=f_getslbs(),LASTDATE=sysdate where czzt='V' and XMZH=yxkzh_p;
--处理上线前的许可证号把京药改成京食药
if instr(yxkzh_p,'京药')>0 then
v_xkzh:=replace(yxkzh_p,'京药','京食药');
else
v_xkzh:=yxkzh_p;
end if;
--更新许可证
UPDATE GG_XKZ_BJPSCWS
SET FZRQ = to_char(SYSDATE,'yyyymmdd'),
YXQQSRQ = to_char(SYSDATE,'yyyymmdd'),
XMZH = v_xkzh,
XKZZT = '1',
DYBS = '000',
GSBS = 'N',
CZZT = 'V',
INSTNUM = f_getslbs(),
LASTDATE = sysdate,
DATEXC = '11'
WHERE ZSID = zsid_p;

--更新申请表许可证号
UPDATE XZXK_BJPJYWS_HF_SQ SET BJBS='Y',DATEXC='11',INSTNUM=f_getslbs(),LASTDATE=sysdate WHERE sqid=sqid_p;

--数据交换删除使用
--INSERT INTO PUB_TABLE_DATA_DELEXC(id, tablename,tablepkname,tablepk,delflag,instnum,lastdate,datexc)
-- select sys_guid(),'xzxk_bjpscws_xx_qb','XKZID',xkzid as tablepk,'N',f_getslbs(),sysdate, '11'
-- from XZXK_BJPSCWS_XX_QB where xkzh=yxkzh_p;
--更新全表信息
UPDATE XZXK_BJPSCWS_XX_QB
SET(XKZH,QYID,QYMC,QYXZ,QYZCDZ,QYZCDZSZQX,QYZCDZSZJD,QYZCDZYZBM,JYDZ,JYDZSZQX,JYDZSZJD,JYDZYZBM,BGDZ,BGDZSZQX,BGDZSZJD,
BGDZYZBM,FDDBR,ZGRS,YTJRS,GDZC,SYMJ,TJCLLX,BGCS,XKFW,QTCL,DATEXC,XKZLX,INSTNUM,LASTDATE,LXR,LXDH)=
(SELECT v_xkzh,QYID,QYMC,QYXZ,QYZCDZ,QYZCDZSZQX,QYZCDZSZJD,QYZCDZYZBM,JYDZ,JYDZSZQX,JYDZSZJD,JYDZYZBM,BGDZ,BGDZSZQX,BGDZSZJD,
BGDZYZBM,FDDBR,ZGRS,YTJRS,GDZC,SYMJ,'','',XKXM,QTCL,'11',XKZLX,f_getslbs(),sysdate,LXR,LXDH
FROM XZXK_BJPJYWS_HF_SQ WHERE SQID=sqid_p)
WHERE XKZH=yxkzh_p;

--更新全表信息(根据许可证信息)
UPDATE XZXK_BJPSCWS_XX_QB SET(XKZZT,FZRQ,SCFZRQ,YXQQSRQ,YXQJZRQ,ZZJGDM,FZJGDM,FZJGMC,DYBS,GSBS,XKZLX,QYMC,FDDBR,QYZCDZ,BGDZ,SCDZ,SCDZSZQX,SCDZSZJD,XKFW)=
(SELECT XKZZT,FZRQ,FZRQ,YXQQSRQ,YXQJZRQ,ZZJGDM,FZJGDM,FZJGMC,DYBS,GSBS,XKZLX,QYMC,FDDBR,QYDZ,BGDZ,SCDZ,SCDZSZQX,SCDZSZJD,XKFW
FROM GG_XKZ_BJPSCWS WHERE SQID=sqid_p) WHERE xkzid=zsid_p;

--数据交换删除使用 人员表
INSERT INTO PUB_TABLE_DATA_DELEXC(id, tablename,tablepkname,tablepk,delflag,instnum,lastdate,datexc)
select sys_guid(),'xzxk_bjpscws_xx_ryxx','zj',zj as tablepk,'N',f_getslbs(),sysdate, '11'
from xzxk_bjpscws_xx_ryxx where xkzh=yxkzh_p;
delete xzxk_bjpscws_xx_ryxx where xkzh=yxkzh_p;

--插入人员表
insert into xzxk_bjpscws_xx_ryxx
(zj,xkzh,qyid,xm,zjlx,zjh,xl,sxzy,zc,instnum,lastdate,datexc,xkzid)
select sys_guid(),v_xkzh,qyid,fddbr,zjlx,zjh,xl,sxzy,zc,f_getslbs(),sysdate,'11',zsid_p
from XZXK_BJPJYWS_HF_SQ where sqid=sqid_p;

UPDATE xzxk_bjpscws_xx_ryxx SET(xm)=
(SELECT FDDBR
FROM GG_XKZ_BJPSCWS WHERE SQID=sqid_p) WHERE xkzid=zsid_p;

DBMS_OUTPUT.PUT_LINE('==============许可证核发审定结束================');
ELSE
Raise v_raise;
END IF;

commit;
Exception
WHEN v_raise THEN
flag := 'N';
DBMS_OUTPUT.PUT_LINE('==============未找到指定业务类型================');
rollback;
WHEN NO_DATA_FOUND THEN
flag := 'N';
rollback;
WHEN others THEN
flag := 'N';
rollback;
END BJPJYXK_HF_SD;

存储过程IF --ELSE IF -- END IF 使用的更多相关文章

  1. 将表里的数据批量生成INSERT语句的存储过程 增强版

    将表里的数据批量生成INSERT语句的存储过程 增强版 有时候,我们需要将某个表里的数据全部或者根据查询条件导出来,迁移到另一个相同结构的库中 目前SQL Server里面是没有相关的工具根据查询条件 ...

  2. Dapper逆天入门~强类型,动态类型,多映射,多返回值,增删改查+存储过程+事物案例演示

    Dapper的牛逼就不扯蛋了,答应群友做个入门Demo的,现有园友需要,那么公开分享一下: 完整Demo:http://pan.baidu.com/s/1i3TcEzj 注 意 事 项:http:// ...

  3. MySQL主从环境下存储过程,函数,触发器,事件的复制情况

    下面,主要是验证在MySQL主从复制环境下,存储过程,函数,触发器,事件的复制情况,这些确实会让人混淆. 首先,创建一张测试表 mysql),age int); Query OK, rows affe ...

  4. mysql进阶之存储过程

    往往看别人的代码会有这样的感慨: 看不懂 理还乱 是离愁 别是一番滋味在心头 为什么要使用存储过程? 在mysql开发中使用存储过程的理由: 当希望在不同的应用程序或平台上执行相同的函数,或者封装特定 ...

  5. MySQL 系列(三)你不知道的 视图、触发器、存储过程、函数、事务、索引、语句

    第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 第三篇:MySQL 系列(三)你不知道的 视图.触发器.存储过程.函数 ...

  6. 参数探测(Parameter Sniffing)影响存储过程执行效率解决方案

    如果SQL query中有参数,SQL Server 会创建一个参数嗅探进程以提高执行性能.该计划通常是最好的并被保存以重复利用.只是偶尔,不会选择最优的执行计划而影响执行效率. SQL Server ...

  7. MSSQL 事务,视图,索引,存储过程,触发器

    事务 事务是一种机制.是一种操作序列,它包含了一组数据库操作命令,这组命令要么全部执行,要么全部不执行. 在数据库系统上执行并发操作时事务是作为最小的控制单元来使用的.这特别适用于多用户同时操作的数据 ...

  8. Mysql - 存储过程/自定义函数

    在数据库操作中, 尤其是碰到一些复杂一些的系统, 不可避免的, 会用到函数/自定义函数, 或者存储过程. 实际项目中, 自定义函数和存储过程是越少越好, 因为这个东西多了, 也是一个非常难以维护的地方 ...

  9. SQL Server存储过程

    创建于2016-12-24 16:12:19 存储过程 概念: 1.存储过程是在数据库管理系统中保存的.预先编译的.能实现某种功能的SQL程序,它是数据库应用中运用比较广泛的 一种数据对象. 2.存储 ...

  10. SQL Server 批量删除存储过程

    原理很简单的'drop proc xxx'即可,下面有提供了两种方式来删除存储过程,其实本质是相同的,方法一是生成删除的sql后直接执行了,方法二会生成SQL,但需要检查后执行,个人推荐第二种做法. ...

随机推荐

  1. Bootstrap 模态框、轮播 结合使用

    Bootstrap 模态框和轮播分开使用的教程网上非常多.可是两者结合使用的样例和资料非常少. 两者结合使用时,開始我遇到了不少bug,如今分享给大家. 我的这个样例是把图片轮播嵌入到模态框里. 最后 ...

  2. libGDX 模块概览

    本文章翻译自libGDX官方wiki,.转载请注明出处:http://blog.csdn.net/kent_todo/article/details/37940595 libGDX官方网址:http: ...

  3. js:"use strict"; 严格模式

    http://www.ruanyifeng.com/blog/2013/01/javascript_strict_mode.html

  4. 阿里巴巴天猫超市团队招聘java开发工程师

    大家好,发个招聘信息:我是阿里巴巴集天猫超市开发团队的同学,我们部门目前在杭州招人,P6岗位,要求至少本科,熟悉java,spring等java开发技术,最好有互联网企业开发经验,感兴趣的可以通过我直 ...

  5. sql字符串处理

    sql字符串截取 substring(ParamName,start,length) start开始位置,length结束位置 DECLARE @Tel NVARCHAR(20) SET @Tel=' ...

  6. gitbook 的资源同步到 github中(方便维护和备份)

    进入SETTINGS -> Github -> Select a Repository. 到这一步为止,我们可以先去我们的github,创建一个仓库先,推荐同名.然后回来gitbook中, ...

  7. Spring学习十----------Bean的配置之Autowired注解实现

    © 版权声明:本文为博主原创文章,转载请注明出处 @Required -@Required注解适用于bean属性的setter方法 -这个注解仅仅表示,受影响的bean属性必须在配置时被填充,通过在b ...

  8. springmvc结合base64存取图片到mysql

    简单介绍: 1.jsp通过MultipartFile上传图片到后台 2.后台把上传的图片通过base64转换成字符串存到mysql 3.从mysql读取图片字符串,通过base64反转成byte数组, ...

  9. mac 升级系统后 ”任何来源“被取消了找回方法

    找回方法 终端输入: sudo spctl --master-disable

  10. hdu 1068 Girls and Boys 二分图的最大匹配

    题目链接:pid=1068">http://acm.hdu.edu.cn/showproblem.php? pid=1068 #include <iostream> #in ...