《DB2存储过程语法大全》.pdf
文本预览下载声明
梦龙博客: Http:///dreamliu001
Click to edit Master title style
DB2 Stored Procedure Basic
2 0 0 9 8 月
梦龙博客: Http:///dreamliu001
基础知识体系
存储过程及其类型
SQL Procedure环境配置
SQL Procedure基础原理
SQL Procedure流程控制
SQL Procedure游标
SQL Procedure异常处理
SQL Procedure动态SQL
开发工具-DB2开发中心
结束
梦龙博客: Http:///dreamliu001
存储过程及其类型
什么是存储过程?
– 能够通过Call Statement调用的一种应用程序,它作为客户端的扩
展,但运行在服务端。
– 用户自定义的存储过程通过CREATE PROCEDURE语句被注册到
DB2数据库的SYSCAT.ROUTINES表。
梦龙博客: Http:///dreamliu001
存储过程及其类型
为什么用存储过程?
1. 多个SQL语句被调用者一次调用就能全部执行,减少了Client和Server间的
数据传输;
2. 可以将数据库逻辑与应用程序逻辑隔离开;
3. 可以支持多个结果集的返回;
4. 如果被应用程序调用,运行起来SP就像应用程序的一部分。
不足之处:
1. 只能用Call调用,且结果集不能直接被Sql Statement使用。
2. 多次调用之间是相互独立的,无法传递信息,即相互之间不能保存调用状
态
3. 存在跨数据库迁移的风险。即不同数据库产品之间存在不兼容性。
梦龙博客: Http:///dreamliu001
存储过程及其类型
存储过程的类型?
– Stored Procedure for SQL = SQL Procedure
– Stored Procedure for Java
Tips: 一般我们常说的存储过程都指SQL Procedure (用SQL PL写的)。
记住:DB2的SQL Procedure需要C/C++编译器环境的支持。
梦龙博客: Http:///dreamliu001
存储过程及其类型
为什么SQL Procedures?
– 性能:
SQL存储过程高于Java存储过程,因为SQL Procedure的SQL解释、优
化、访问计划等都在Build时创建好了。
SQL Procedure是运行在DB Engine上,减少了网络的负载,效率高,因
为全是SQL,DB2认为SQL存储过程是安全的。
……
– 安全级别:
GRANT EXECUTE ON PROCEDURE代替了直接的表特权。
梦龙博客: Http:///dreamliu001
SQL Procedure环境配置
在服务器上安装应用开发客户端
在服务器上安装DB2支持的C/C++编译器
DB2_SQLROUTINE_COMPILER_PATH registry variable
DB2_SQLROUTINE_COMPILE_COMMAND registry variable
A IX:
Windows:
– 总是需 配置C/C++编译器配置
如果这个注册变量修改了,实例必须要重启。db2stop / db2start
梦龙博客: Http:///dreamliu001
SQL Procedure环境配置
为什么需要C/C++编译器
显示全部