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 中的 GOTO 用法 在 Oracle 中,GOTO 语句用于无条件跳转到指定的标签处。例如,在以下代码中,我们使用 GOTO 语句来实现一个简单的循环: ```sql DECLARE x number; BEGIN x := 9; <<repeat_loop>> ...
本文将详细介绍两种在Oracle PL/SQL中实现类似`continue`功能的方法:使用`GOTO`语句以及通过异常处理机制。 #### 方法一:使用`GOTO` 在PL/SQL中,虽然`GOTO`不是一种推荐的最佳实践,但在某些特定情况下,使用它...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其丰富的功能和强大的性能使其在企业级应用中占据了重要地位。本资源包含的是"Oracle帮助文档",以CHM(Microsoft Compiled HTML Help)格式提供,这是一种...
在ASP页面中,使用ADO(ActiveX Data Objects)对象来建立与Oracle数据库的连接。通常涉及的对象有Connection和Command。以下是一个基本示例: ```vbscript Dim conn Set conn = Server.CreateObject("ADODB....
以下是一份详细的知识点解析,将介绍如何使用VB6与Oracle 10G建立连接,并进行数据库操作。 首先,你需要在VB6环境中引入Oracle的数据提供者——ODBC驱动程序或Oracle Data Provider for .NET (ODP.NET),以实现与...
4. **流程控制**:包括IF-THEN-ELSE、CASE语句用于条件判断,WHILE和FOR循环用于迭代,以及GOTO语句(尽管不推荐使用)。 5. **游标**:游标是处理结果集的一种方式,允许程序逐行处理查询结果,常用于动态数据处理...
此外,PL/SQL还提供了GOTO语句,尽管在现代编程中不推荐使用,但在某些特定场景下可能有用。 异常处理是PL/SQL中一个独特且重要的特性,它允许程序员优雅地处理可能出现的错误情况。通过EXCEPTION关键字,我们可以...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统,其强大的功能和稳定性使得它在企业级应用中占据了重要地位。本文将深入探讨Oracle体系结构及其PL/SQL编程语言的基础知识。 首先,我们来了解一下Oracle的...
On Error GoTo ErrorHandler ' ... 连接和查询代码 ... Exit Sub ErrorHandler: MsgBox "Error " & Err.Number & ": " & Err.Description conn.Close Set conn = Nothing End Sub ``` 6. **释放资源**:...
* 如何使用 SQL 语句:包括启动 SQL*Plus、使用 iSQLPlus 与 Oracle 连接、结束与 Oracle 的连接等方面的介绍。 * SELECT 语句的用法:包括简单的 SELECT 语句、WHERE 子句、查询结果的排序等方面的介绍。 * 函数的...
Oracle PLSQL编程是数据库管理与开发中的核心技术,尤其在企业级应用系统中广泛使用。PL/SQL(Procedural Language/Structured Query Language)是Oracle数据库提供的一个过程化语言,它结合了SQL的查询功能和传统的...
- **规范要求**:在PL/SQL中应当尽可能使用Oracle提供的内置函数,这不仅可以提高代码的性能,还能保证代码的可移植性和稳定性。 - **示例**: ```plsql SELECT TRUNC(SYSDATE) INTO v_date FROM DUAL; ``` ###...
PL/SQL提供了一系列的流程控制语句,如IF...THEN...ELSIF...ELSE...END IF用于条件判断,WHILE循环和FOR循环用于迭代,以及GOTO语句进行跳转。 五、PL/SQL的SQL语句 PL/SQL可以直接嵌入SQL语句,如SELECT、INSERT、...
2. **控制流**:讲解如何使用流程控制语句来控制程序的执行流程,如GOTO、LOOP、EXIT、CONTINUE等。 3. **游标**:游标是PL/SQL中处理单行记录的方法,允许逐行处理查询结果。书籍可能会详细介绍如何声明、打开、...
适用于ORACLE EBS FORM开发深入技巧,有利于深入了解FORM开发技术。
1. **Oracle数据库基础**:Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,提供了丰富的功能和高度的可扩展性。其核心特性包括数据存储、事务处理、安全性、并发控制等。了解Oracle数据库的基础知识,...
Oracle数据库是全球最广泛使用的商业关系型数据库管理系统之一,它以其强大的数据处理能力和高稳定性而闻名。本套学习材料以“Oracle从入门到精通”为主题,通过精心编排的PPT形式,旨在帮助初学者逐步掌握Oracle的...
了解如何创建和使用索引,以及如何编写高效的SQL语句,是提升Oracle数据库性能的关键。索引可以加速查询,但过度使用也可能导致写操作变慢,因此需要合理平衡。 总之,“PLSQL Oracle8i程序设计”文档将引导初学者...
介绍了oracle存储过程中常见的sql写法,游标(隐式,显式),触发器, CASE ... WHEN ...... ELSIF ...THEN...ELSE...END IF,记录类型变量定义和使用 ,%type定义变量,%rowtype定义变量,goto,异常。多且全