没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
DB2
存储过程
-
基础详解
2010-12-20 来源:网络
简介
DB2 SQL Procedural Language(SQL PL)是 SQL Persistent Stored Module 语言标准的一个子集。该标准结合了 SQL 访问数据的方便性
和编程语言的流控制。通过 SQL PL 当前的语句集合和语言特性,可以用 SQL 开发综合的、高级的程序,例如函数、存储过程和触发器。
这样便可以将业务逻辑封装到易于维护的数据库对象中,从而提高数据库应用程序的性能。
SQL PL 支持本地和全局变量,包括声明和赋值,还支持条件语句和迭代语句、控制语句的转移、错误管理语句以及返回结果集的方法。
这些话题将在本教程中讨论。
变量声明
SQL 过程允许使用本地变量赋予和获取 SQL 值,以支持所有 SQL 逻辑。在 SQL
过程中,在代码中使用本地变量之前要先进行声明。
清单 1 中的图演示了变量声明的语法:
清单 1. 变量声明的语法
.-,-----------------.
V |
|--DECLARE----SQL-variable-name-+------------------------------->
.-DEFAULT NULL------.
>--+-data-type--+-------------------+-+-------------------------|
| '-DEFAULT--constant-' |
SQL-variable-name 定义本地变量的名称。该名称不能与其他变量或参数名称相同,也不能与列名相同。
图 1 显示了受支持的 DB2 数据类型:
DEFAULT 值 – 如果没有指定,在声明时将赋值为 NULL。
下面是变量声明的一些例子:
• DECLARE v_salary DEC(9,2) DEFAULT 0.0;
• DECLARE v_status char(3) DEFAULT ‘YES’;
• DECLARE v_descrition VARCHAR(80);
• DECLARE v1, v2 INT DEFAULT 0;
请注意,从 DB2 version 9.5 开始才支持在一个 DECLARE 语句中声明多个相同数据类型的变量。
数组数据类型
SQL 过程从 9.5 版开始支持数组类型的变量和参数。要定义一个数组类型的变量,需要先在数据库中创建该类型,然后在过程或应用程
序中声明它。数组是临时的值,可以在存储过程和应用程序中操纵它,但是不能将它存储到表中。
DB2 支持以下创建数组数据类型的语法:
清单
2.
创建数组数据类型的语法
Sql 代码
1. >>-CREATE TYPE—array-type-name--AS--| data-type |--ARRAY--[---------->
2.
3. .-2147483647-------.
4. >--+------------------+--]-------------------------------------><
5. '-integer-constant-'
数组类型的名称应该用模式加以限定,并且在当前服务器上应该是惟一的。LONG VARCHAR、LONG VARGRPAHIC、XML 和用户定
义类型不能作为数组元素的数据类型。
下面是数组类型的例子:
Sql 代码
1. CREATE TYPE numbers as INTEGER ARRAY[100];
2. CREATE TYPE names as VARCHAR(30) ARRAY[];
3. CREATE TYPE MYSCHEMA.totalcomp as DECIMAL(12,2) ARRAY[];
请注意,整数 “constant” 指定数组的最大基数,它是可选的。数组元素可以通过 ARRAY-VARIABLE(subindex) 来引用,其中 subindex
必须介于 1 到数组的基数之间。
现在可以在 SQL 过程中使用这个数据类型:
清单
3.
在过程中使用数组数据类型
Sql 代码
1. CREATE PROCEDURE PROC_VARRAY_test (out mynames names)
2. BEGIN
3. DECLARE v_pnumb numbers;
4. SET v_pnumb = ARRAY[1,2,3,5,7,11];
5. SET mynames(1) =’MARINA’;
6.
7. …
8. END
DB2 支持一些操作数组的方法。例如,函数 CARDINALITY(myarray) 返回一个数组中元素的个数。
赋值
SQL PL 提供了 SET 语句来为变量和数组元素赋值。
下面是一个 SET 语句的简化的语法:
SET variable_name = value/expression/NULL;
这个变量名可以是一个本地变量、全局变量或数组元素的名称。
下面是一些例子:
剩余14页未读,继续阅读
资源评论
- shirleylz2013-06-17非常好的书。适合学习。
- JXCHEN1232013-06-26非常好的书。适合学习。
- c_79_68_692013-12-24不全也不详细。但是有一定的借鉴意义
死循环_Young
- 粉丝: 0
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功