DB2的三种存储过程的递归方式(2)
2013-11-19 19:55
225 查看
DB2的三种存储过程的递归方式(二)
这几天一直在忙着老师布置的作业,虽然很忙,但是学到了不少东西!好吧言归正传,上次说到DB2的三种存储过程的递归方式,下面我们来看第二个:
模块实现递归:
不知道大家听说过模块这个概念没有,在ORACLE中,大家肯定熟悉包的概念,没错,DB2的模块和ORACLE的包概念是一样的,只是定义的方法略有不同。毕竟DB2现在的版本几乎是完美兼容ORACLE了,ORACLE中存在的在DB2中基本上都存在,更可喜的是我们完全可以按照写
Oracle存储过程一样写DB2的存储过程,只要在这之前,加上兼容ORACLE语句即可:
db2set DB2_COMPATIBILITY_VECTOR=ORA
当让上面说的都是题外话。
--@创建模块
CREATE MODULE HR--@发布存储过程
ALTER MODULE HR PUBLISH PROCEDURESALARY_RASIE(IN IN_DEPTNO CHAR(4),IN percent DOUBLE)
--@实现存储过程
ALTER MODULE HR PUBLISH PROCEDURESALARY_RASIE(IN IN_DEPTNO CHAR(4),IN percent DOUBLE)
BEGIN
DECLARE SUB_DEPT CHAR(4);
FOR DEPT_ROW AS
SELECT deptno FROM DEPARTMENT WHERE admrdept=in_deptno
DO
SETsub_dept=dept_row.deptno;
CALL HR.SALARY_RAISE(sub_dept,percent);--递归调用自身
END FOR;
UPDATE employee SET salary=salary*(1+percent)
WHERE workdept=in_deptno;
END
其实大家看这个DB2的模块根本和ORACLE中的包差不太多,而且也很好理解。这些例子都来源于我看的一本书《从ORALCE到DB2从容转身》,特推荐给大家!!!!!
相关文章推荐
- DB2的三种存储过程的递归方式
- SQLServer 中存储过程返回的三种方式( 包括存储过程的创建, 在存储过程中调用, 在VS中调用的方法)
- 存储过程遍历游标三种方式
- 二叉树的存储方式以及递归和非递归的三种遍历方式
- 二叉树的存储方式以及递归和非递归的三种遍历方式
- java调用oracle存储过程的三种方式
- 二叉树的存储方式以及递归和非递归的三种遍历方式
- 二叉树的存储方式以及递归和非递归的三种遍历方式
- java调用存储过程的三种方式(包含通过hibernate调用)
- 二叉树的存储方式以及递归和非递归的三种遍历方式
- SQLServer 中存储过程返回的三种方式( 包括存储过程的创建, 在存储过程中调用, 在VS中调用的方法)
- DB2 数据库中得到存储过程创建语句的三种方法
- hive安装过程:metastore(元数据存储)的三种方式之本地derby方式
- hive安装过程:metastore(元数据存储)的三种方式之远端mysql方式
- 存储过程中遍历游标的三种方式(For,Fetch,While)
- MySQL存储过程和自定义函数、Navicat、创建存储过程和函数、调用存储过程和函数、三种方式、In和Out类型参数、
- SQLServer 中存储过程返回的三种方式( 包括存储过程的创建, 在存储过程中调用, 在VS中调用的方法)
- MySQL存储过程和自定义函数、Navicat、创建存储过程和函数、调用存储过程和函数、三种方式、In和Out类型参数、
- SQL Server 重新编译存储过程的方式有三种
- hive安装过程:metastore(元数据存储)的三种方式之本地mysql方式