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. Android解析聚合数据之天气预报

    免费天气预报API:https://www.juhe.cn/docs/api/id/73 ,申请APPKEY MainActivity.java <span style="font-s ...

  2. vue.js+koa2项目实战(一)创建项目和elementUI配置

    前端采用vuex+element-ui: 后端采用koa2+restfulAPI+sequlize: (一)项目介绍 宠物社区 1.社区 2.好友 3.说说 4.宠粮 5.健康 (二)项目框架 1.V ...

  3. #測试相关#Getting “junit.framework.AssertionFailedError: Forked Java VM exited abnormally” Exception

    编写Ant脚本进行持续測试的时候.出现了junit.framework.AssertionFailedError: Forked Java VM exited abnormally的报错,以此为key ...

  4. Archlinux 下的 VMWare Workstation 维护笔记

    印象中 Archlinux 下的 VMWare Workstation 总是出问题, 因此写这个帖子, 记录出问题时间/原因/解决方案. PS: 每次更新内核后可能需要重新编译 vmware 的内核模 ...

  5. Gson把对象转成json格式的字符串

    近期在做一个java web service项目,须要用到jason,本人对java不是特别精通,于是開始搜索一些java平台的json类库. 发现了google的gson.由于之前对于protoco ...

  6. PHP通过prepare执行查询取得数据

    可以用来防止sql注入 <?php $pdo=new PDO("mysql:host=localhost;dbname=itest", 'root',''); //先构建查询 ...

  7. Fakeapp2.2安装,使用简记--------------转载自iJessie

    原文:https://www.cnblogs.com/iJessie/p/8568377.html 1,硬件和操作系统,支持cuda的Nvidia显卡,8G及以上的内存,Windows10 x64(推 ...

  8. ubantu 彻底卸载mysql

    卸载mysql 第一步 1 sudo apt-get autoremove --purge mysql-server-5.0 2 sudo apt-get remove mysql-server 3 ...

  9. 畅通project再续 HDU杭电1875 【Kruscal算法 || Prim】

    Problem Description 相信大家都听说一个"百岛湖"的地方吧.百岛湖的居民生活在不同的小岛中.当他们想去其它的小岛时都要通过划小船来实现.如今政府决定大力发展百岛湖 ...

  10. c# .net 关于接口实现方式:隐式实现/显式实现!

    以前在用到接口时,从来没注意到接口分为隐式实现与显示实现.昨天在浏览博客时看到相关内容,现在根据自己的理解记录一下,方便日后碰到的时候温习温习.  通俗的来讲,“显示接口实现”就是使用接口名称作为方法 ...