存儲過程IF --ELSE IF -- END IF 使用


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;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM