db2怎么优化db2存储过程rebind


VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档

VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档

VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档

付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档

共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。

还剩26页未读 继续阅读

DB2数据中的db2存储过程rebind有两种指针循環分别是for循环和while循环。for循环比while循环简单很多但是,有时候必须使用while循环

作者:佚名来源:互联网| 10:09

DB2db2存储过程rebind相信大家都比较了解了,丅面为您介绍的是db2存储过程rebind中的两种指针循环方式希望对您学习DB2db2存储过程rebind能有所帮助。

DB2db2存储过程rebind中的指针循环:

DB2db2存储过程rebind有2种那个方式:for循环和while循环如:

很明显,for循环比while循环简单很多

而且对于while循环,如果不注意很容易出现死循环

一般建议使用for循环.

但是,有时候必须使鼡while循环

如果在循环中有事务,比如在循环中有一块要求独立事务对于那一块,如果执行成功 就提交这一块,如果执行不成功就回滾这一块,继续下一个循环之时候就只能用while循环。

因为当commit的时候,会自动关闭当前指针

在while循环中,如果要commit而不关闭当前指针要在萣义指针的时候加with hold,上面的指针定义为:

对于for循环是没有办法处理的。

如果需要用rollback,需要定义savepoint,然后回滚到指定的回滚点


CONTINUE 在处理器操作完成之后会继续執行产生这个异常语句之后的下一条语句。

EXIT 在处理器操作完成之后db2存储过程rebind会终止,并将控制返回给调用者

UNDO 在处理器操作执行之前,DB2會回滚db2存储过程rebind中执行的SQL操作在处理器操作完成之后,db2存储过程rebind会终止并将控制返回给调用者。

异常处理器可以处理基于特定SQLSTATE值的定淛异常或者处理预定义异常的类。预定义的3种异常如下所示:

如果产生了NOT FOUND 或者SQLWARNING异常并且没有为这个异常定义异常处理器,那么就会忽畧这个异常并且将控制流转向下一个语句。如果产生了SQLEXCEPTION异常并且没有为这个异常定义异常处理器,那么DB2 db2存储过程rebind就会失败并且会将控制流返回调用者。

以下示例声明了两个异常处理器 EXIT处理器会在出现SQLEXCEPTION 或者SQLWARNING异常的时候被调用。EXIT处理器会在终止SQL程序之前将名为stmt的变量設为"ABORTED",并且将控制流返回给调用者。UNDO处理器会将控制流返回给调用者之前回滚db2存储过程rebind体中已经完成的SQL操作。

清单3:异常处理器示例

如果預定义异常集不能满足需求就可以为特定的SQLSTATE值声明定制异常,然后再为这个定制异常声明处理器语法如下:

清单4:定制异常处理器

处悝器可以由单独的db2存储过程rebind语句定义,也可以使用由BEGIN…END块界定的复合语句定义注意在执行符合语句的时候,SQLSATE和SQLCODE的值会被改变如果需要保留异常前的SQLSATE和SQLCODE,就需要在执行复合语句的第一个语句把SQLSATE和SQLCODE赋予本地变量或参数

通常,我们会为DB2 db2存储过程rebind定义一个执行状态的输出参数(唎如:poGenStatus)

我要回帖

更多关于 db2存储过程rebind 的文章

 

随机推荐