DB2纯SQL存储过程入门实践
背景:本人现在在DB2 9.1做Birt应用,需用写纯SQL的存储过程,经过多层嵌套循环查询多个表,并返回一个最终的结果集(打开的游标)。然后再在birt中直接调用以下就获取了结果集的纪录,并展示在页面中。为此,我在网上搜索了很多资料,但是没有一个完整的可以执行的DB2存储过程。研究好久了,终于写出来了一个模板性的示例出来。现在拿出来,和各位网友共同分享交流。
示例说明:先创建一个临时表,并插入数据,然后查询临时表,返回游标。
create procedure testPrc()
-- 返回一个纪录
dynamic result sets 1
------------------------------------------------------------------------
-- sql 存储过程
------------------------------------------------------------------------
p1: begin
-- 定义一个全局临时表tmp_hy
declare global temporary table session.tmp_hy
(
dm varchar(10),
mc varchar(10)
)
with replace -- 如果存在此临时表,则替换
not logged; -- 不在日志里纪录
-- 给临时表插入三条数据
insert into session.tmp_hy values('1','1');
insert into session.tmp_hy values('1','1');
insert into session.tmp_hy values('1','1');
p2: begin
-- 声明游标
declare cursor1 cursor with return for
select * from session.tmp_hy;
-- 游标对客户机应用程序保持打开
open cursor1;
end p2;
end p1
另:鉴于有人问到此例子怎么执行,我是在集成开发环境里执行的.运行存储过程的方法很多,可以存在高级编程语言里调用,也可以在命令行调用,也可以在sql开发工具里调用,没法一概而论,还有,这个游标,你要看到结果,需要逐条取出所有纪录.这些都是其它方面的知识,你可以去别的地方补充.我这里怎么运行的,以及怎么处理的,为了避免误导读者,我还是不说了.下面我给出我调用此存储过程得出的结果,如下图:
http://blog.51cto.com/attachment/200612/1166756483234.png
总结:这个例子很简单,但是很实用,可以作为一个存储过程的模板来用。完全操作的是临时表,你在任何db2数据库下都可以执行,并查看结果。为了保持例子的简洁易懂,我没有设置输入输出参数,这些参数和Oracle里,高级变成语言中函数的参数差不多,所以就写了这个不带参数的。
题外话:DB2 的存储过程和函数与Oracle的差别太大,DB2存储过程允许返回值,还可以设定返回值的数量,而Oracle的存储过程是不允许返回值的;DB2的函数也可以返回值,也可以返回表,而Oracle返回比较随意。用DB2做开发是件很痛苦的事情,原因是没有很好的开发工具,不像Oracle有 PL/SQL这样强大的开发工具可用,但是DB2的性能比Oracle的好,海量T级别的数据库尤为明显。目前我用的是Quest Central For DB2 4.3,功能很弱,连自动弹出表的列名功能都没有!DB2自带的开发中心更烂,没法用,shit!严重与IBM的品牌不相符合。不知道各位网友你们都在用什么开发工具呢?
分享到:
相关推荐
DB2数据库存储过程是数据库管理员和开发者用于封装SQL语句和控制流逻辑的数据库对象。它们提供了一种高效、安全的方式来执行复杂的数据库操作,并且可以重复使用,提高代码的复用性和可维护性。以下是对DB2存储过程...
DB2存储过程是数据库管理中一种强大的编程工具,它允许用户在数据库级别封装复杂的SQL语句和控制流逻辑。在本“DB2存储过程入门实例”文档中,我们将深入探讨DB2存储过程的基础知识,包括其定义、创建、调用以及优化...
**IBM DB2通用数据库SQL入门** IBM DB2是一款强大的关系型数据库管理系统,广泛应用于企业级数据存储和管理。SQL(Structured Query Language)是与DB2交互的主要语言,它用于创建、查询、更新和管理数据库。本PDF...
IBM DB2通用数据库SQL入门是针对想要学习和掌握IBM DB2数据库系统以及SQL语言的初学者的一份宝贵资源。这份PDF教程将引导你逐步了解DB2的基础知识,并深入理解SQL语言在DB2环境中的应用。 IBM DB2是IBM公司开发的一...
DB2 Universal Database (UDB) 是IBM开发的一款关系型数据库管理系统,它支持...通过阅读《DB2 UDB SQL入门》这本书,读者将能够掌握DB2 UDB的基础知识,熟练运用SQL进行数据库操作,并逐步熟悉Unix环境下的DB2管理。
IBM DB2通用数据库SQL入门教程是针对初学者设计的一份宝贵资源,旨在帮助读者掌握如何在IBM DB2数据库系统中运用SQL(结构化查询语言)进行数据管理。SQL是数据库管理和分析的核心工具,广泛应用于数据查询、更新、...
### DB2_SQL入门知识点概述 #### 一、DB2简介 - **DB2**是由IBM公司开发的一款关系型数据库管理系统(RDBMS),广泛应用于企业级数据处理领域。 - **DB2**支持多种操作系统,如Windows、Linux、Unix等,并且能够高效...
DB2 SQL入门教程是针对初学者设计的一套学习资源,旨在帮助用户快速掌握DB2数据库管理系统中的SQL语言基础。DB2是由IBM开发的关系型数据库系统,广泛应用于企业级数据存储和管理,支持复杂的事务处理和大数据分析。...
DB2还提供了存储过程(STORED PROCEDURE)和触发器(TRIGGER),它们是预编译的SQL代码集合,可以在特定条件下自动执行,增强了数据库的灵活性和可扩展性。 最后,了解DB2的命令行界面(如db2cmd或db2cli)和图形...
学习SQL是DB2入门的关键,理解其基本语法和操作符对于有效管理数据至关重要。 DB2还支持备份和恢复功能,这是防止数据丢失的重要措施。你可以使用`db2backup`和`db2restore`命令来进行数据库的备份和恢复。同时,...
### IBM DB2数据库——SQL入门知识点详解 #### 标题:IBM DB2数据库——SQL入门 **IBM DB2**是一款由IBM公司开发的关系型数据库管理系统(RDBMS),广泛应用于企业级数据处理环境中。该标题指出本文档将介绍有关...
1. DB2 SQL扩展:除了标准SQL,DB2还支持一系列扩展功能,如嵌套SQL、用户自定义函数(UDF)、存储过程等。 2. 分区:通过分区技术,大型表可以根据某个字段值进行分割,提高查询效率。 3. 视图:视图是虚拟表,基于...
- **SQL PL (SQL Procedural Language)**:DB2支持嵌入式SQL和SQL PL,允许编写存储过程和触发器,增强数据库功能。 - **JOIN操作**:DB2支持内连接、外连接(左连接、右连接和全连接)、交叉连接等多种JOIN操作,...
通过上述知识点,我们可以看出DB2 Express-C快速入门书籍为初学者提供了一个全面的入门指南。书中不仅详细介绍了DB2的基本操作和原理,还包含了大量实际操作示例和实验,这些都是帮助初学者快速掌握DB2 Express-C的...
本资源“IBM_Universal_Database_DB2_SQL_entry_DB2V7SQL.rar_universal”是一个针对DB2 SQL入门的教程,适用于初学者了解和掌握DB2的基础知识和SQL语言的使用。 首先,我们要理解关系数据库的概念。关系数据库模型...