`
DangDang0701
  • 浏览: 77226 次
  • 性别: Icon_minigender_2
  • 来自: 大连
社区版块
存档分类
最新评论

存储过程

阅读更多

存储过程小结:

CREATE OR REPLACE PROCEDURE AXAPC.SP_PRINT_REPORT
(IN_PARAM01 IN CHAR,
IN_OUT_PARAM02 IN OUT CHAR,
OUT_PARAM03 OUT VARCHAR2)

AS
NOWAITLOCKED EXCEPTION;
PRAGMA EXCEPTION_INIT(NOWAITLOCKED,-00054);
TEMP_PARAM01 DATE;
TEMP_PARAM02 %TYPE;

CURSOR FCRCURSOR IS
	SELECT * FROM T_TEST_TABLE01;

BEGIN
    OUT_PARAM03 := '1';
	TMP_FCR_NO := '';
	
	FOR FCRDATA IN FCRCURSOR LOOP
		TEMP_PARAM01 := '';
		TEMP_PARAM02 := '';
		EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_CALENDAR="GREGORIAN"';
		FCRCOMMENT := 'FCR入力 ' || TO_CHAR(FCRDATA.CREAT_DT, 'YYYY/MM/DD HH24:MI');
	END LOOP;
	COMMIT;
	
	--lockを取れない。
	EXCEPTION WHEN NOWAITLOCKED THEN
		--結果が2、lockを取れない
		OUT_PARAM03 := '2';
		ROLLBACK;
		RETURN;
	WHEN OTHERS THEN
		OUT_PARAM03 := '1';
		ROLLBACK;
		RETURN;
END;
/

 

1.创建过程

过程参数有IN,OUT,IN OUT三种模式。

IN:传入的参数。过程中值不能改变。

OUT:返回的参数,在过程内部赋值。

IN OUT:即是传入的参数,也是返回的参数。过程运行时已经有具体值,过程中也可以修改。

 

2.AS/IS 声明过程中用到的临时变量。

EXCEPTION,CURSOR等也是在这里声明。

 

EXCEPTION 用以下语句声明。其中,00054是ORACLE内部定义的编号。这个异常没有名字。我们根据异常的内容可以定一个有意义的名字。如果不知道编号,可以让程序出现这个异常。就可以找到这个编号了。

 

NOWAITLOCKED EXCEPTION;
PRAGMA EXCEPTION_INIT(NOWAITLOCKED,-00054);

 

3.过程体

BEGIN  END中间是过程体。

 

其中比较重要的是对CURSOR的操作。

 

一般对游标的操作有以下几个步骤:

a。声明一些变量,用来保存Select的列值

b。声明游标

c。打开游标  open 游标名

d。从游标取得记录  fetch 游标名  into  变量名

e。关闭游标 close 游标名

 

其中ab已经说过了。剩下的步骤就是在过程体中完成了。

 

一般过程:

open 游标名

LOOP

fetch 游标名  into  变量名

END LOOP

close 游标名

 

这个过程有些繁琐。

用FOR循环之后就简单多了。

 

FOR FCRDATA IN 游标名 LOOP


END LOOP;

FOR循环可以不用显式的打开和关闭游标。FOR循环会自动执行这些。

 

4.EXCEPTION的捕捉。

 

 EXCEPTION

WHEN NOWAITLOCKED THEN
 OUT_PARAM03 := '2';
ROLLBACK;
RETURN;


 WHEN OTHERS THEN
OUT_PARAM03 := '1';
ROLLBACK;
RETURN;
END;

当EXCEPTION发生的时候,就会跳转到这里。先判断是不是预定义的EXCEPTION。不是则用OTHERS来处理。

OTHERS可以处理所有的异常。必须在所有的特定异常之后。

 

5.调用过程

CALL 过程名(参数)

 

6.删除过程

DROP 过程名

 

7 获取过程的信息

SELECT * FROM USER_PROCEDURES

 

 

分享到:
评论
1 楼 icethink 2011-11-15  
受教了。

相关推荐

    SAP HANA 中调试存储过程

    SAP HANA是一个高性能的内存数据库系统,它提供了一系列功能强大的工具来进行数据分析、应用开发、存储过程编写等操作。其中,对于存储过程的调试是开发者日常开发工作中的一个重要环节,SAP HANA为存储过程提供了...

    SqlServer存储过程及调试指南

    SqlServer存储过程及调试指南的知识点如下: 1. 存储过程概念:存储过程是一组为完成特定功能的SQL语句集,这些语句经过编译后存储在数据库中,供用户通过指定存储过程名和参数(如有)来执行。存储过程被称作...

    SQL存储过程试题及答案

    SQL存储过程试题及答案 SQL存储过程是数据库中的一种程序单元,能够完成特定的数据库操作。今天,我们将讨论三道关于SQL存储过程的试题,这些试题涵盖了存储过程的创建、调用和参数传递等方面。 1. 创建分数存储...

    pb调用存储过程

    在IT行业中,数据库操作是日常开发中的重要环节,而存储过程是数据库中一种高效、封装性强的预编译语句集合。本问题涉及到的是在PowerBuilder(简称Pb)环境中如何调用Oracle或SQL Server等数据库中的存储过程。以下...

    db2 存储过程语法与实例

    DB2存储过程是一种在数据库管理系统中预编译的SQL代码集合,它允许开发人员封装复杂的业务逻辑和数据处理操作,并可以被多次调用。DB2作为一款强大的关系型数据库管理系统,其存储过程功能强大,提高了应用程序的...

    存储过程扩展学习

    在SQL Server中,存储过程分为不同种类,包括用户定义的存储过程、系统存储过程、临时存储过程以及扩展存储过程。 1. **用户定义的存储过程**:由开发人员或DBA创建,可以根据业务需求定制各种复杂操作,如数据处理...

    pl sql developer调试存储过程及调试包中创建的存储过程

    PL/SQL Developer 调试存储过程及调试包中创建的存储过程 PL/SQL Developer 调试存储过程是指使用 PL/SQL Developer 工具来调试 Oracle 数据库中的存储过程。调试存储过程可以帮助开发者快速地定位和解决存储过程...

    数据库查询的存储过程

    数据库查询的存储过程 数据库查询的存储过程是数据库管理系统中一种非常重要的概念。它可以将多个SQL语句组合成一个单元,提高数据库的查询效率和性能。 存储过程的优点: 1. 可以在单个存储过程中执行一系列SQL...

    存储过程的优点

    ### 存储过程的优点 #### 一、提升执行效率 1. **编译优势**:存储过程在创建时仅编译一次,之后每次执行时都无需再次编译。相比之下,一般的SQL语句每次执行都需要重新编译。这种差异使得存储过程能够显著提高...

    mysql存储过程教程

    MySQL存储过程是数据库管理系统中的一种重要功能,它允许开发者预编译一系列SQL语句并封装成一个可重复使用的单元,从而提高数据处理的效率和代码的复用性。本教程将深入探讨MySQL存储过程的创建、调用以及相关概念...

    oracle存储过程学习经典入门

    本文将从 Oracle 存储过程的基础知识开始,逐步深入到 Oracle 存储过程的高级应用,包括 Hibernate 调用 Oracle 存储过程和 Java 调用 Oracle 存储过程的方法。 Oracle 存储过程基础知识 Oracle 存储过程是 Oracle...

    C# winform调用SQL存储过程-菜鸟入门 详细注释

    内容概要:简单的C# winform调用存储过程实例,创建存储过程入参,通过SqlConnection对象和SqlCommand对象调用存储过程,获取存储过程的出参并显示出来,详细代码注释,希望对用到C#调用存储过程的小伙伴有帮助 ...

    MySQL存储过程的异常处理方法

    在MySQL中,存储过程是一种预编译的SQL代码集合,它可以执行复杂的操作并提供更好的性能。在编写存储过程时,异常处理是确保程序稳定性和健壮性的重要环节。本实例展示了如何在MySQL存储过程中实现异常处理,以捕获...

    用友r9知识存储过程

    《用友R9知识存储过程详解》 在IT行业中,特别是在企业级财务系统中,数据库的高效管理和数据处理是至关重要的。用友R9作为一款先进的财务管理系统,它利用存储过程这一强大的数据库功能来优化账务处理,提高系统...

    SQL Server存储过程对比工具

    SQL Server存储过程对比工具是一种高效且实用的软件解决方案,它专为数据库管理员和开发人员设计,用于比较和分析两个SQL Server数据库中的存储过程。这款工具的主要功能是帮助用户快速识别和定位不同数据库间存储...

    创建存储过程,触发器

    在数据库管理中,存储过程和触发器是两个重要的概念,它们极大地增强了数据库的功能和效率。存储过程是一组预先编写的SQL语句,可以被多次调用,减少了网络流量,提高了性能,并提供了更好的安全性。而触发器则是一...

    存储过程文档--mysql

    存储过程文档--MySQL 存储过程是 MySQL 中的一个强大功能,它允许用户预先将常用的或复杂的工作写入 SQL 语句,并将其存储起来,以便在以后的数据库操作中可以快速调用和执行。存储过程可以提高数据库的执行速度,...

    SQL_Server存储过程调试指南

    资源名称:SQL_Server存储过程调试指南内容简介: 存储过程( Stored Procedure)是一组为了完成特定功能的 SQL 语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来...

    oracle 事务 回滚 存储过程

    在Oracle数据库环境中,事务管理与存储过程的结合是实现数据一致性、事务回滚以及错误处理的关键技术之一。本文将深入探讨“Oracle事务回滚存储过程”这一主题,旨在理解其核心概念、工作原理以及实际应用。 ### ...

Global site tag (gtag.js) - Google Analytics