CREATE OR REPLACE PROCEDURE "DYLTWZDSJ_CP_BA" (YWID IN VARCHAR2,
XKZBH IN VARCHAR2,
FLAG OUT VARCHAR2) IS
V_RAISE EXCEPTION;
V_YWLX CHAR(2); --业务类型
V_BAH VARCHAR2(50);
V_XXBID VARCHAR2(32);
V_GG_XKZ_YLYLQXPZ GG_XKZ_YLYLQXPZ%ROWTYPE;
V_BA_SQS XZXK_YLYLQX_BA_SQS%ROWTYPE;

BEGIN
SELECT T.YWLX INTO V_YWLX FROM XZXK_YLYLQX_BA_SQS T WHERE T.SQID = YWID;

--根据不同的业务类型做相应处理
IF (V_YWLX = 'A') THEN
--备案-----------------------------------------------
UPDATE GG_XKZ_YLYLQXPZ T
SET T.CZZT = 'V', T.GSBS = 'Y', T.PZZT = 'Y'
WHERE T.SQID = YWID;
--插入主表信息
INSERT INTO XZXK_YLYLQX_XX_QB
(XXBID,
CPLX,
CPID,
CPMC,
CPYWMC,
CPLDH,
CPLMC,
YJCPLB,
CPLXH,
EJCPLB,
JGTZ,
XHGG,
CPMS,
YQYT,
CPYXQ,
QYID,
QYMC,
QYYWMC,
ZCDZ,
ZCDSZSF,
ZCDSZQX,
ZCDYWMC,
SCDZ,
BARSZD,
ZZJGDM,
LXR,
LXDH,
CZ,
YB,
DZXX,
QTXYSMDWT,
INSTNUM,
LASTDATE,
DATEXC)
SELECT T.SQID,
T.CPLX,
T.CPID,
T.CPMC,
T.CPYWMC,
T.CPLDH,
T.CPLMC,
T.YJCPLB,
T.CPLXH,
T.EJCPLB,
T.JGTZ,
T.XHGG,
T.CPMS,
T.YQYT,
T.CPYXQ,
T.QYID,
T.QYMC,
T.QYYWMC,
T.ZCDZ,
T.ZCDSZSF,
T.ZCDSZQX,
T.ZCDYWMC,
T.SCDZ,
T.BARSZD,
T.ZZJGDM,
T.LXR,
T.LXDH,
T.CZ,
T.YB,
T.DZXX,
T.QTXYSMDWT,
F_GETSLBS AS INSTNUM,
SYSDATE AS LASTDATE,
'11' AS DATEXC
FROM XZXK_YLYLQX_BA_SQS T
WHERE T.SQID = YWID;
--插入规格/型号表信息
INSERT INTO XZXK_YLYLQX_XX_GGXH
(BZJ, XXBID, CPID, CPMC, CPXH, INSTNUM, LASTDATE, DATEXC)
SELECT T .BZJ,
T .SQID AS XXBID,
T .CPID,
T .CPMC,
T .CPXH,
F_GETSLBS AS INSTNUM,
SYSDATE AS LASTDATE,
'11' AS DATEXC
FROM XZXK_YLYLQX_BA_GGXH T
WHERE T.SQID = YWID;
--插入生产地址
INSERT INTO XZXK_YLYLQX_XX_SCDZ
(BZJ,
XXBID,
JTDZ,
SZSF,
SZQX,
SZJD,
LXDH,
YB,
INSTNUM,
LASTDATE,
DATEXC)
SELECT T .BZJ,
T .SQID AS XXBID,
T .JTDZ,
T .SZSF,
T .SZQX,
T .SZJD,
T .LXDH,
T .YB,
F_GETSLBS AS INSTNUM,
SYSDATE AS LASTDATE,
'11' AS DATEXC
FROM XZXK_YLYLQX_BA_SCDZ T
WHERE T.SQID = YWID;
--通过凭证表更新信息全表
SELECT T.*
INTO V_GG_XKZ_YLYLQXPZ
FROM GG_XKZ_YLYLQXPZ T
WHERE T.SQID = YWID;
UPDATE XZXK_YLYLQX_XX_QB T
SET T .BAH = V_GG_XKZ_YLYLQXPZ.BAH,
T .QYID = V_GG_XKZ_YLYLQXPZ.BARID,
T .QYMC = V_GG_XKZ_YLYLQXPZ.BARMC,
T .ZZJGDM = V_GG_XKZ_YLYLQXPZ.ZZJGDM,
T .ZCDZ = V_GG_XKZ_YLYLQXPZ.ZCDZ,
T .SCDZ = V_GG_XKZ_YLYLQXPZ.SCDZ,
T .CPMC = V_GG_XKZ_YLYLQXPZ.CPMC,
T .XHGG = V_GG_XKZ_YLYLQXPZ.BZGG,
T .CPMS = V_GG_XKZ_YLYLQXPZ.CPMS,
T .YQYT = V_GG_XKZ_YLYLQXPZ.YQYT,
T .CPYXQ = V_GG_XKZ_YLYLQXPZ.CPYXQ,
T .BZ = V_GG_XKZ_YLYLQXPZ.BZ,
T .BADWBH = V_GG_XKZ_YLYLQXPZ.BADWBH,
T .BADW = V_GG_XKZ_YLYLQXPZ.BADW,
T .BARQ = V_GG_XKZ_YLYLQXPZ.BARQ,
T.PZZT = V_GG_XKZ_YLYLQXPZ.PZZT,
T .INSTNUM = F_GETSLBS,
T .LASTDATE = SYSDATE,
T .DATEXC = '11'
WHERE T.XXBID = YWID;

ELSIF (V_YWLX = 'G') THEN
--变更-----------------------------------------------
SELECT BAH INTO V_BAH FROM XZXK_YLYLQX_BA_SQS WHERE SQID = YWID;
SELECT XXBID INTO V_XXBID FROM XZXK_YLYLQX_XX_QB WHERE BAH = V_BAH;

SELECT * INTO V_BA_SQS FROM XZXK_YLYLQX_BA_SQS WHERE SQID = YWID;
SELECT * INTO V_GG_XKZ_YLYLQXPZ FROM GG_XKZ_YLYLQXPZ WHERE SQID = YWID;

--有效一条状态设置为无效
UPDATE GG_XKZ_YLYLQXPZ T
SET T.CZZT = 'I',
T.PZZT = 'N',
T.INSTNUM = F_GETSLBS,
T.LASTDATE = SYSDATE,
T.DATEXC = '11'
WHERE T.CZZT = 'V'
AND T.PZZT = 'Y'
AND T.BAH = V_BAH;
--最新一条设置为有效
UPDATE GG_XKZ_YLYLQXPZ T
SET T.PZZT = 'Y',
T.CZZT = 'V',
T.DYBS = '000',
T.GSBS = 'Y',
T.INSTNUM = F_GETSLBS,
T.LASTDATE = SYSDATE,
T.DATEXC = '11'
WHERE T.BAH = V_BAH
AND T.SQID = YWID
AND T.CZZT = 'T';
--
UPDATE XZXK_YLYLQX_XX_QB
SET CPLX = V_BA_SQS.CPLX,
CPID = V_BA_SQS.CPID,
CPMC = V_BA_SQS.CPMC,
CPYWMC = V_BA_SQS.CPYWMC,
CPLDH = V_BA_SQS.CPLDH,
CPLMC = V_BA_SQS.CPLMC,
YJCPLB = V_BA_SQS.YJCPLB,
CPLXH = V_BA_SQS.CPLXH,
EJCPLB = V_BA_SQS.EJCPLB,
JGTZ = V_BA_SQS.JGTZ,
XHGG = V_BA_SQS.XHGG,
CPMS = V_BA_SQS.CPMS,
YQYT = V_BA_SQS.YQYT,
CPYXQ = V_BA_SQS.CPYXQ,
QYID = V_BA_SQS.QYID,
QYMC = V_BA_SQS.QYMC,
QYYWMC = V_BA_SQS.QYYWMC,
ZCDZ = V_BA_SQS.ZCDZ,
ZCDSZSF = V_BA_SQS.ZCDSZSF,
ZCDSZQX = V_BA_SQS.ZCDSZQX,
ZCDYWMC = V_BA_SQS.ZCDYWMC,
SCDZ = V_BA_SQS.SCDZ,
BARSZD = V_BA_SQS.BARSZD,
ZZJGDM = V_BA_SQS.ZZJGDM,
LXR = V_BA_SQS.LXR,
LXDH = V_BA_SQS.LXDH,
CZ = V_BA_SQS.CZ,
YB = V_BA_SQS.YB,
DZXX = V_BA_SQS.DZXX,
QTXYSMDWT = V_BA_SQS.QTXYSMDWT,
BAH = V_BA_SQS.BAH,
BZ = V_BA_SQS.BZ,
BADWBH = V_BA_SQS.BADWBH,
BADW = V_BA_SQS.BADW,
BARQ = V_BA_SQS.BARQ,
JDJC = '',
BJRY = '',
BJRQ = '',
INSTNUM = F_GETSLBS,
LASTDATE = SYSDATE,
DATEXC = '11'
WHERE XXBID = V_XXBID;
INSERT INTO PUB_TABLE_DATA_DELEXC
(ID,
TABLENAME,
TABLEPKNAME,
TABLEPK,
DELFLAG,
INSTNUM,
LASTDATE,
DATEXC)
SELECT SYS_GUID(),
'XZXK_YLYLQX_XX_GGXH',
'BZJ',
BZJ AS TABLEPK,
'N',
F_GETSLBS(),
SYSDATE,
'11'
FROM XZXK_YLYLQX_XX_GGXH
WHERE XXBID = V_XXBID;
DELETE FROM XZXK_YLYLQX_XX_GGXH WHERE XXBID = V_XXBID;
INSERT INTO PUB_TABLE_DATA_DELEXC
(ID,
TABLENAME,
TABLEPKNAME,
TABLEPK,
DELFLAG,
INSTNUM,
LASTDATE,
DATEXC)
SELECT SYS_GUID(),
'XZXK_YLYLQX_XX_BGQK',
'BZJ',
BZJ AS TABLEPK,
'N',
F_GETSLBS(),
SYSDATE,
'11'
FROM XZXK_YLYLQX_XX_BGQK
WHERE XXBID = V_XXBID;
DELETE FROM XZXK_YLYLQX_XX_BGQK WHERE XXBID = V_XXBID;
INSERT INTO PUB_TABLE_DATA_DELEXC
(ID,
TABLENAME,
TABLEPKNAME,
TABLEPK,
DELFLAG,
INSTNUM,
LASTDATE,
DATEXC)
SELECT SYS_GUID(),
'XZXK_YLYLQX_XX_SCDZ',
'BZJ',
BZJ AS TABLEPK,
'N',
F_GETSLBS(),
SYSDATE,
'11'
FROM XZXK_YLYLQX_XX_SCDZ
WHERE XXBID = V_XXBID;
DELETE FROM XZXK_YLYLQX_XX_SCDZ WHERE XXBID = V_XXBID;
--插入规格/型号表信息
INSERT INTO XZXK_YLYLQX_XX_GGXH
(BZJ, XXBID, CPID, CPMC, CPXH, INSTNUM, LASTDATE, DATEXC)
SELECT T .BZJ,
V_XXBID,
T .CPID,
T .CPMC,
T .CPXH,
F_GETSLBS AS INSTNUM,
SYSDATE AS LASTDATE,
'11' AS DATEXC
FROM XZXK_YLYLQX_BA_GGXH T
WHERE T.SQID = YWID;
--插入生产地址
INSERT INTO XZXK_YLYLQX_XX_SCDZ
(BZJ,
XXBID,
JTDZ,
SZSF,
SZQX,
SZJD,
LXDH,
YB,
INSTNUM,
LASTDATE,
DATEXC)
SELECT T .BZJ,
V_XXBID,
T .JTDZ,
T .SZSF,
T .SZQX,
T .SZJD,
T .LXDH,
T .YB,
F_GETSLBS AS INSTNUM,
SYSDATE AS LASTDATE,
'11' AS DATEXC
FROM XZXK_YLYLQX_BA_SCDZ T
WHERE T.SQID = YWID;
--变更情况
INSERT INTO XZXK_YLYLQX_XX_BGQK
(BZJ, XXBID, SXH, BAH, BGNR, INSTNUM, LASTDATE, DATEXC)
SELECT BZJ, V_XXBID, SXH, BAH, BGNR, F_GETSLBS, SYSDATE, '11'
FROM GG_XKZ_YLYLQXPZ_BGQK
WHERE BAH = V_BAH
AND PZZJ = V_GG_XKZ_YLYLQXPZ.PZZJ;
--凭证更新到信息表
UPDATE XZXK_YLYLQX_XX_QB
SET BAH = V_GG_XKZ_YLYLQXPZ.BAH,
ZZJGDM = V_GG_XKZ_YLYLQXPZ.ZZJGDM,
ZCDZ = V_GG_XKZ_YLYLQXPZ.ZCDZ,
SCDZ = V_GG_XKZ_YLYLQXPZ.SCDZ,
CPMC = V_GG_XKZ_YLYLQXPZ.CPMC,
CPMS = V_GG_XKZ_YLYLQXPZ.CPMS,
YQYT = V_GG_XKZ_YLYLQXPZ.YQYT,
CPYXQ = V_GG_XKZ_YLYLQXPZ.CPYXQ,
BZ = V_GG_XKZ_YLYLQXPZ.BZ,
BADWBH = V_GG_XKZ_YLYLQXPZ.BADWBH,
BADW = V_GG_XKZ_YLYLQXPZ.BADW,
BARQ = V_GG_XKZ_YLYLQXPZ.BARQ,
ZXRQ = V_GG_XKZ_YLYLQXPZ.ZXRQ,
ZXDWBH = V_GG_XKZ_YLYLQXPZ.ZXDWBH,
ZXDW = V_GG_XKZ_YLYLQXPZ.ZXDW,
JDJC = V_GG_XKZ_YLYLQXPZ.JDJC,
BJRY = V_GG_XKZ_YLYLQXPZ.BJRY,
BJRQ = V_GG_XKZ_YLYLQXPZ.BJRQ,
INSTNUM = F_GETSLBS,
LASTDATE = SYSDATE,
DATEXC = '11'
WHERE XXBID = V_XXBID;
ELSIF (V_YWLX = 'Z') THEN
--补证-----------------------------------------------
SELECT T.BAH INTO V_BAH FROM XZXK_YLYLQX_BA_SQS T WHERE T.SQID = YWID;
--有效一条状态设置为无效
UPDATE GG_XKZ_YLYLQXPZ T
SET T.CZZT = 'I',
T.PZZT = 'N',
T.INSTNUM = F_GETSLBS,
T.LASTDATE = SYSDATE,
T.DATEXC = '11'
WHERE T.CZZT = 'V'
AND T.PZZT = 'Y'
AND T.BAH = V_BAH;
--最新一条设置为有效
UPDATE GG_XKZ_YLYLQXPZ T
SET T.PZZT = 'Y',
T.CZZT = 'V',
T.DYBS = '000',
T.GSBS = 'Y',
T.INSTNUM = F_GETSLBS,
T.LASTDATE = SYSDATE,
T.DATEXC = '11'
WHERE T.BAH = V_BAH
AND T.SQID = YWID
AND T.CZZT = 'T';
--更新信息全表
SELECT T.*
INTO V_GG_XKZ_YLYLQXPZ
FROM GG_XKZ_YLYLQXPZ T
WHERE T.SQID = YWID;
UPDATE XZXK_YLYLQX_XX_QB T
SET T.BZ = V_GG_XKZ_YLYLQXPZ.BZ,
T.JDJC = V_GG_XKZ_YLYLQXPZ.JDJC,
T.BJRY = V_GG_XKZ_YLYLQXPZ.BJRY,
T.BJRQ = V_GG_XKZ_YLYLQXPZ.BJRQ,
T.PZZT = V_GG_XKZ_YLYLQXPZ.PZZT,
T.INSTNUM = F_GETSLBS,
T.LASTDATE = SYSDATE,
T.DATEXC = '11'
WHERE T.BAH = V_BAH;
ELSIF (V_YWLX = 'X') THEN
--注销-----------------------------------------------
SELECT T.BAH INTO V_BAH FROM XZXK_YLYLQX_BA_SQS T WHERE T.SQID = YWID;
--有效一条状态设置为无效
UPDATE GG_XKZ_YLYLQXPZ T
SET T.CZZT = 'I',
T.PZZT = 'N',
T.INSTNUM = F_GETSLBS,
T.LASTDATE = SYSDATE,
T.DATEXC = '11'
WHERE T.CZZT = 'V'
AND T.BAH = V_BAH;
--最新一条设置为有效
UPDATE GG_XKZ_YLYLQXPZ T
SET T.CZZT = 'V',
T.DYBS = '000',
T.GSBS = 'Y',
T.PZZT = 'N',
T.INSTNUM = F_GETSLBS,
T.LASTDATE = SYSDATE,
T.DATEXC = '11'
WHERE T.BAH = V_BAH
AND T.SQID = YWID
AND T.CZZT = 'T';
--更新信息全表
SELECT T.*
INTO V_GG_XKZ_YLYLQXPZ
FROM GG_XKZ_YLYLQXPZ T
WHERE T.SQID = YWID;
UPDATE XZXK_YLYLQX_XX_QB T
SET T.BZ = V_GG_XKZ_YLYLQXPZ.BZ,
T.ZXDWBH = V_GG_XKZ_YLYLQXPZ.ZXDWBH,
T.ZXDW = V_GG_XKZ_YLYLQXPZ.ZXDW,
T.ZXRQ = V_GG_XKZ_YLYLQXPZ.ZXRQ,
T.JDJC = V_GG_XKZ_YLYLQXPZ.JDJC,
T.BJRY = V_GG_XKZ_YLYLQXPZ.BJRY,
T.BJRQ = V_GG_XKZ_YLYLQXPZ.BJRQ,
T.PZZT = V_GG_XKZ_YLYLQXPZ.PZZT,
T.INSTNUM = F_GETSLBS,
T.LASTDATE = SYSDATE,
T.DATEXC = '11'
WHERE T.BAH = V_BAH;
END IF;
FLAG := 'Y';
COMMIT;
EXCEPTION
WHEN V_RAISE THEN
FLAG := 'N';
ROLLBACK;
WHEN NO_DATA_FOUND THEN
FLAG := 'N';
ROLLBACK;
END DYLTWZDSJ_CP_BA;

存储过程之ROWTYPE 使用事例的更多相关文章

  1. 存储过程之rowtype 使用

    CREATE OR REPLACE PROCEDURE "DYLYLQX_SC_BA_1" (YWID IN VARCHAR2, FLAG OUT VARCHAR2) IS V_R ...

  2. Oracle内置存储过程之DBMS_OUTPUT

    1.DBMS_OUTPUT 1.1 作用: 调试PL/SQL程序 1.2 相关函数: 命令 作用 备注 enable 在serveroutput on的情况下,用来使dbms_output生效(默认即 ...

  3. Code First系列之视图,存储过程和异步API

    返回<8天掌握EF的Code First开发>总目录 本篇目录 视图View 存储过程 使用存储过程CRUD 异步API 本章小结 自我测试 本系列的源码本人已托管于coding上:点击查 ...

  4. MySQL 存储过程 经常使用语法

    MySQL 存储过程是从 MySQL 5.0 開始添加的新功能.存储过程的长处有一箩筐.只是最基本的还是运行效率和SQL 代码封装.特别是 SQL 代码封装功能,假设没有存储过程,在外部程序訪问数据库 ...

  5. mysql:视图,触发器,事务,存储过程,函数

    一.视图 视图是一个虚拟表并不是(正实存在的) 创建老师表 create table teacher( id int primary key auto_increment, tname varchar ...

  6. MySQL视图,触发器,事务,存储过程,函数

    create triggr triafterinsertcmdlog after insert on cmd_log FOR EACH ROW trigger_body .#NEW : 代表新的记录 ...

  7. MySQL死锁[转]

    案例描述       在定时脚本运行过程中,发现当备份表格的sql语句与删除该表部分数据的sql语句同时运行时,mysql会检测出死锁,并打印出日志. 两个sql语句如下:       (1)inse ...

  8. [经验分享] MySQL Innodb表导致死锁日志情况分析与归纳【转,纯学习】

    在定时脚本运行过程中,发现当备份表格的sql语句与删除该表部分数据的sql语句同时运行时,mysql会检测出死锁,并打印出日志. 两个sql语句如下: (1)insert into backup_ta ...

  9. day 7-20 视图,触发器,事务

    一.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...

随机推荐

  1. 【AngularJS】【02】AngularJS应用骨架

    ※文件引自OneDrive,有些人可能看不到

  2. git 添加远程库

    1.登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库. 在Repository name填入learngit,其他保持默认设置,点击“Create re ...

  3. Oraclet提交提示Record is locked by another user错误

    http://blog.csdn.net/alifel/article/details/4324338下午修改oracle datebase中的字段时,提示"Record is locked ...

  4. 检验 java 基础数据类型参数传递方式

    测试证明,java基础数据类型参数传递值虽是引用传递但是值不会改变.对象是引用传递,值会改变. 为什么?找到一段话来解释这个问题. "对于字符串对象来说,虽然在参数传递的时候也是引用传递,但 ...

  5. 四种常见的POST提交数据方式

    POST一般用来向服务端提交数据,有四种提交数据的格式,分别是: 1.application/x-www-form-urlencoded 2.application/json 3.multipart/ ...

  6. apt-get update --> Bad header line (fresh install) Ign http://archive.ubuntu.com natty-security/multiverse Sources/DiffIndex W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/natty/Rele

    apt-get update --> Bad header line (fresh install) fresh natty install i386 desktop. I get this e ...

  7. Effective Java - [3. 对象通用方法]

    Item 10. 若覆盖equals方法,需要遵守规则

  8. 使用mysqld_multi 实现Mysql 5.6.36 + 5.7.18 单机多实例多版本安装

    Mysql 5.6.36 + 5.7.18 单机多实例多版本安装 随着硬件层面的发展,各种高性能服务器如雨后春笋般出现,但高性能服务器不免造成浪费, MySQL单机多实例,是指在一台物理服务器上运行多 ...

  9. mysql 相关博客地址

    MySQL概念学习与逐步上手操作系列(一套完整)   https://www.cnblogs.com/zlslch/category/962962.html

  10. 【转】iOS安全之RSA加密/生成公钥、秘钥 pem文件

    在iOS中使用RSA加密解密,需要用到.der和.p12后缀格式的文件,其中.der格式的文件存放的是公钥(Public key)用于加密,.p12格式的文件存放的是私钥(Private key)用于 ...