zoukankan      html  css  js  c++  java
  • 存储过程系列一:宝玉初适阴雨情

    通过一个月的编写存储过程,下面将简单的将自己写的存储过程写下来备份给自己:

    (自己文笔有限,各位酌量学习)

    1、创建存储过程格式:

    创建过程语法: 

    create [or replace] procedure procedure_name 
    [ (argment [ { in| in out }] type, 
    argment [ { in | out | in out } ] type 
    { is | as } 
    <类型.变量的说明
    ( 注: 不用 declare 语句 
    Begin 
    <执行部分
    exception 
    <可选的异常处理说明
    end; 

    例如:

    CREATE OR REPLACE PROCEDURE "XZXK_YLQXSCWT_BA_IN_SQ" (sqidIn in varchar2,
                                                          flag   out varchar2
                                                          ) is 

    上述是存储存储过程语句 创建或替换 ‘存储过程名称’ (条件 inoutinout)

    in:表示存储过程要传入的参数

    out:表示要传出返回给程序的参数

    in out:表示即可传入也可传出的参数

    正式语句:

    CREATE OR REPLACE PROCEDURE "XZXK_YLQXSCWT_BA_IN_SQ" (sqidIn in varchar2,
                                                          flag   out varchar2
                                                          ) is

      -- 定义异常变量
      v_raise EXCEPTION;
      -- 定义使用变量
      V_qbid VARCHAR2(32);

    begin
      -- 自定义一个32为全表主键
       select  sys_guid() into V_qbid from dual;

      -- 将修改后的证面信息表数据插入 医疗器械生产许可信息全表
       insert into xzxk_ylqxscwt_xx_qb
              (qbid, sqid, babh, sqrq, sbh, slrq, slbh, bjbs, slzt, wtcpgllb, ssqxj, babm, barq,  instnum, lastdate, datexc)
       select V_qbid, sqid, babh, sqrq, sbh, slrq, slbh, bjbs, slzt, wtcpgllb, ssqxj, babm, barq,  f_getslbs(),sysdate, '11'  from xzxk_ylqxscwt_mz_ba_sq
       where sqid=sqidIn;

       -- 将委托受托信息表 委托信息更新到 信息全表中
       -- 信息全表  委托
       update  xzxk_ylqxscwt_xx_qb set ( WTQYID, WTQYMC, WTYYXKHBABZ, WTYYZJLX, WTXKHZBAH )  =
                                ( select WTSTXXID, QYMC ,  YYXKHBABZ ,  YYZJLX,   XKHZBAH from  XZXK_YLQXSCWT_MZ_BA_WTSTXX WHERE sqid=sqidIn  AND WTSTBZ = '1' )
               WHERE  sqid=sqidIn;

       -- 将委托受托信息表 委托信息更新到 信息全表中
       -- 信息全表  受托
       update  xzxk_ylqxscwt_xx_qb set ( STQYID, STQYMC, STYYXKHBABZ, STYYZJLX2, STXKHZBAH )   =
                                        ( select WTSTXXID, QYMC ,  YYXKHBABZ ,  YYZJLX,   XKHZBAH  from XZXK_YLQXSCWT_MZ_BA_WTSTXX WHERE sqid=sqidIn AND WTSTBZ = '2' )
               WHERE  sqid=sqidIn;

       -- 将修改后的 生产产品信息 插入到 委托生产产品信息全表
       insert into xzxk_ylqxscwt_xx_sccp
                      (bzj, qbid,   sqid, sxh, cpmc, zczh, wtqx, instnum, lastdate, datexc, sfyx)
                select sys_guid(), V_qbid ,sqid, sxh, cpmc, zczh, wtqx, instnum, lastdate, datexc, '1'  from xzxk_ylqxscwt_mz_ba_sccp    where  sqid=sqidIn  ;
        flag := 'Y';
        commit;
     -------------------------------------提交流程----查看是否有异常--------------
      Exception

    -- 判断条件 出现异常及未发现数据做如何处理
      WHEN v_raise THEN
        flag := 'N';
        rollback;
      WHEN NO_DATA_FOUND THEN
        flag := 'E';
        commit;

    end XZXK_YLQXSCWT_BA_IN_SQ;

  • 相关阅读:
    Python异常捕捉try except else finally有return时执行顺序探究
    为什么在Python的线程内调用sys.exit()时不退出?
    Hadoop集群上用户使用crontab时候失败
    记一次--------spark 读 mysql 报错no suitable driver
    通用权限sql设计
    union all 对结果进行分类展示
    雷达图
    常用语句
    oracle中计算两个日期的相差天数、月数、年数、小时数、分钟数、秒数等
    icell设计器发送邮件不成功
  • 原文地址:https://www.cnblogs.com/meimao5211/p/4118662.html
Copyright © 2011-2022 走看看