`
q272156430
  • 浏览: 270186 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

oracle goto 使用

阅读更多
IF (V_COUNT > 0) THEN
       --更新ets_item_info
       UPDATE ETS_ITEM_INFO
       SET   FINANCE_PROP    = 'CTZC',
              LAST_UPDATE_DATE = SYSDATE,
              LAST_UPDATE_BY   =P_USER_ID
       WHERE  SYSTEMID = P_SYSTEMID;
       
       RETURN 1;
     ELSE
       GOTO lable;     END IF;
   

<<lable>>
    NULL;
   
    EXCEPTION   WHEN OTHERSTHEN
     BEGIN
        P_ERRMSG := SQLERRM;
        RETURN 0;
     END;

 

<<lable>> 后面不能直接跟EXCEPTION这种关键字类的语句,要用NULL把标签跟关键字隔开。类似的关键字还有ENDLOOP之类的。。。
PROCEDURE PRC_F_yaa012_yw_ht (
      prm_aae076          IN              ad04a1.aae076%TYPE,       -- 财务接口流水号
      prm_yad060          IN              ad04a1.yad060%TYPE,       -- 收付种类
      prm_yab003          IN              ad04a1.yab003%TYPE,       -- 社保经办机构
      prm_YAA012          IN              ad04a1.yaa012%TYPE,       -- 财务处理标志
      prm_AAB191          IN              ad04a1.AAB191%TYPE,       -- 实际到账日期
      prm_AAE036          IN              ad04a1.AAE036%TYPE,       -- 登账日期
      prm_AppCode         OUT             VARCHAR2,       -- 执行代码
      prm_ErrorMsg        OUT             VARCHAR2)       -- 出错信息
  IS
     --定义变量
     var_bz CHAR(1);
  BEGIN
      /*初始化变量*/
      prm_AppCode  := pkg_COMM.gn_def_OK;
      prm_ErrorMsg := '';
      var_bz := SUBSTR(prm_yad060,1,1);
      IF var_bz = 'R' THEN --居民医疗
         --调用居民医保业务表同步过程
         pkg_P_Comm.prc_P_updateFundAllocation
                              (prm_aae076       ,     --单据号
                               prm_yad060       ,     --收付种类
                               prm_yab003       ,     --社保经办机构
                               prm_yaa012       ,     --财务处理标志
                               prm_aab191       ,     --到帐时间
                               prm_AAE036       ,     --财务结算日期
                               prm_AppCode      ,     --错误代码
                               prm_ErrorMsg     );    --错误内容
         IF prm_AppCode <> pkg_COMM.gn_def_OK THEN
            GOTO label_ERROR;
         END IF;
      ELSIF var_bz = 'K' THEN --医疗待遇
         pkg_k_PaymentComm.prc_k_PaymentWriteYw
                              ( prm_aae076      ,     -- 财务接口流水号
                                prm_yad060      ,     -- 收付种类
                                prm_yab003      ,     -- 社保经办机构
                                prm_YAA012      ,     -- 财务处理标志
                                prm_AAB191      ,     -- 实际到账日期
                                prm_AAE036      ,     -- 登账日期
                                prm_AppCode      ,     -- 错误代码
                                prm_ErrorMsg     );    -- 错误内容
         IF prm_AppCode <> pkg_COMM.gn_def_OK THEN
            GOTO label_ERROR;
         END IF;
      ELSE
         prm_AppCode  := PRE_ERRCODE ||'0506';
         prm_ErrorMsg := '无法同步财务接口流水号为' || prm_aae076||'的业务表!';
         GOTO label_ERROR;
      END IF;
      /*成功处理*/
      <<label_OK>>
      /*关闭打开的游标*/
      /*给返回参数赋值*/
      prm_AppCode  := pkg_COMM.gn_def_OK ;
      prm_ErrorMsg := ''                 ;
      RETURN ;

      /*处理失败*/
      <<label_ERROR>>
      /*关闭打开的游标*/
      /*给返回参数赋值*/
      IF prm_AppCode = pkg_COMM.gn_def_OK THEN
         prm_AppCode  := PRE_ERRCODE || pkg_COMM.gn_def_ERR;
      END IF ;
      RETURN ;
  EXCEPTION
     -- WHEN NO_DATA_FOUND THEN
     -- WHEN TOO_MANY_ROWS THEN
     -- WHEN DUP_VAL_ON_INDEX THEN
     WHEN OTHERS THEN
        /*关闭打开的游标*/
        prm_AppCode  := PRE_ERRCODE || pkg_COMM.gn_def_ERR;
        prm_ErrorMsg := '数据库错误'|| SQLERRM ;
        RETURN;
  END PRC_F_yaa012_yw_ht;

 

分享到:
评论

相关推荐

    Oracle Form开发常用技巧

    适用于ORACLE EBS FORM开发深入技巧,有利于深入了解FORM开发技术。

    oracle存储过程进阶

    介绍了oracle存储过程中常见的sql写法,游标(隐式,显式),触发器, CASE ... WHEN ...... ELSIF ...THEN...ELSE...END IF,记录类型变量定义和使用 ,%type定义变量,%rowtype定义变量,goto,异常。多且全

    Oracle8i_9i数据库基础

    §13.3 标号和GOTO 254 §13.4 NULL 语句 255 第十四章 光标的使用 255 §14.1 光标概念 255 §14.1.1 处理显式光标 255 §14.1.2 处理隐式光标 257 §14.2 光标循环 258 §14.2.1 简单循环 258 §14.2.2 WHILE循环 ...

    oracle学习资料

    §3.3 标号和GOTO 13 §3.4 NULL 语句 13 第四章 游标的使用 13 §4.1 游标概念 13 §4.1.1 处理显式游标 13 §4.1.2 处理隐式游标 13 §4.1.3 游标修改和删除操作 13 第五章 异常错误处理 13 §5.1 异常处理概念 13...

    plsql_oracle 编程

    §3.3 标号和GOTO 13 §3.4 NULL 语句 13 第四章 游标的使用 13 §4.1 游标概念 13 §4.1.1 处理显式游标 13 §4.1.2 处理隐式游标 13 §4.1.3 游标修改和删除操作 13 第五章 异常错误处理 13 §5.1 异常处理概念 13...

    plsql_oracle 8i 编程讲义

    §3.3 标号和GOTO 13 §3.4 NULL 语句 13 第四章 游标的使用 13 §4.1 游标概念 13 §4.1.1 处理显式游标 13 §4.1.2 处理隐式游标 13 §4.1.3 游标修改和删除操作 13 第五章 异常错误处理 13 §5.1 异常处理概念 13...

    C# 访问Oracle示例+PL/SQL+存储过程+触发器 完整示例 测试可用 易懂

    C# 访问Oracle示例+PL/SQL+存储过程+触发器 完整示例 测试可用 --PL/SQL基础1 declare begin dbms_output.('不输出不换行'); dbms_output.put_line('输出并换行'); end; --PL/SQL基础2 declare dig number(20,...

    精通SQL 结构化查询语言详解

    17.4 Oracle中游标的使用  17.4.1 显式游标与隐式游标 17.4.2 游标的属性  17.4.3 %TYPE、%ROWTYPE定义记录变量  17.4.4 参数化游标  17.4.5 游标中的循环  17.4.6 游标变量 17.5 小结  第18章 事务...

    精通SQL--结构化查询语言详解

    17.4 oracle中游标的使用 365 17.4.1 显式游标与隐式游标 365 17.4.2 游标的属性 366 17.4.3 %type、%rowtype定义记录变量 367 17.4.4 参数化游标 368 17.4.5 游标中的循环 369 17.4.6 游标变量 371 17.5 小...

    H155-合集-大型数据库系统概论-实验.pptx

    使用Oracle企业管理器或手工方法创建表STUDENT的一个同义词以及用来生成表STUDENT中主键SNO唯一值的一个序列。 5. 使用Oracle企业管理器或手工方法创建一个索引簇、哈希簇,并在新建簇上创建新表。 6. 使用Oracle...

    取不重复的N个随机数

    随机函数的用法,数组的用法,GOTO语句的用法

    数据库自动备份.bat

    oracle 数据库自动备份: if not exist d:\数据库备份 md d:\数据库备份 if not exist d:\数据库备份\OLD md d:\数据库备份\OLd if not exist d:\数据库备份\log md d:\数据库备份\log if exist D:\数据库备份\new_...

    精通sql结构化查询语句

    6.4.4 使用TOP子句 6.4.5 NULL的判断 6.5 模糊查询 6.5.1 使用LIKE运算符进行查询 6.5.2 使用“_”通配符进行查询 6.5.3 使用“%”通配符进行查询 6.5.4 使用“[]”通配符进行查询 6.5.5 使用“[^]”通配符进行查询...

    SQLSERVER服务手工启动 批处理文件

    就成这样了 代码如下: @echo off echo 开启SQLSERVER服务按1 echo 关闭SQLSERVER服务按2 echo 开启ORACLE服务按3 echo 关闭ORACLE服务按4 set /p ans= if %ans%==1 goto sts if %ans%==2 goto ovs if %ans%==3 goto ...

    PL/SQL Developer8.04官网程序_keygen_汉化

     使用PL/SQL Profiler,可以浏览每一执行的PL/SQL代码行的时序信息(Oracle8i或更高),从而优化您SQL和PL/SQL的代码性能。  更进一步,您还可以自动获取所执行的SQL语句和PL/SQL程序统计信息。该统计信息包括CPU...

    轻松学C#(图解版)

    5.4.3 goto语句 86 5.5 小结 87 5.6 习题 87 第6章 数组 91 6.1 初识数组 91 6.2 基本数组 92 6.2.1 声明数组 92 6.2.2 数组的初始化 92 6.2.3 数组引用 93 6.2.4 数组的赋值 94 6.2.5 遍历数组 95 6.3 特殊数组 96...

    atom-elmjutsu, 用Elm开发的技巧包 ( Atom 包).zip

    atom-elmjutsu, 用Elm开发的技巧包 ( Atom 包) Elmjutsu用 Elm 开发的一套技巧。https://atom.io/packages/elmjutsu设置安装 Elm 。安装语言 elm ( 无需安装 elm-oracle 或者 goto ) 。对于 Go to

    PLSQLDeveloper下载

    性能优化——使用PL/SQL Profiler,可以浏览每一执行的PL/SQL代码行的时序信息(Oracle8i或更高),从而优化您SQL和PL/SQL的代码性能。 更进一步,您还可以自动获取所执行的SQL语句和PL/SQL程序统计信息。该统计...

    PL/SQL 基础.doc

    (在此里层,对其他里层则不影响,想要不影响此里层的话可以使用标号标注外层); ---- 第四章 PL/SQL控制语句 ---- 1. 条件语句 IF boolean_expression1(条件1) THEN ... ELSIF boolean_expression2(条件2) ...

    java面试800题

    Q0032 Oracle的集合操作函数,如sum(),avg(),max(),min(),与select,where,grouby,having的先后顺序,使用方法 Oracle集合查询基本知识,只有进行分组的列,才可以取在集合查询SQL语句中取字段,先Group By,再Having...

Global site tag (gtag.js) - Google Analytics