DB2 基础: 结构化数据类型和类型化表简介
2010-07-20 00:00:00 来源:WEB开发网一个详细的例子
在该例中,我们将使用 DB2 UDB 附带的 SAMPLE 数据库。例子只要求一个数据库连接来启动操作,不要求其他任何东西,对此,SAMPLE 数据库将表现得非常出色。
我们将创建一个有 4 个列的名为 CLIENTS 的表。CLIENT_ID 是系统生成的标识列;CLIENT_LNAME 和 CLIENT_FNAME 分别包含客户的名和姓,并且 ADDRESS 是类型 Address_t 的结构化类型列。(一个有益的习惯是,使用 '_t'后缀来命名结构化类型,使它们的结构化类型特征变得更明显。)在试图创建 CLIENTS 表(清单 1)之前,需要创建这个结构化类型。我们将使用 CREATE TYPE 语句的最简单形式,只指定 4 个属性(street、city、province 和 postal_code)以及必需的 MODE DB2_SQL 子句。
为了从表中检索结构化类型数据,必须有一些将类型转换成一个标量值,换句话说,这些值的类型必须基于某种内置的 DB2 数据类型。为了完成这个转换,首先必须创建一个 FROM SQL 转换函数,然后用 转换组 将转换函数联系起来。
首先,我们将使用 CREATE FUNCTION(SQL Scalar 、Table 或 Row)语句,创建一个名为 ADDRESS_TRANSFORM 的标量转换函数。在此例中,我们指定了一个 Address_t 类型的名为addr 的输入参数。并指定该函数返回一个足以保留连接的地址属性的 VARCHAR(42)。SQL-function-body 由 RETURN 语句组成,在该语句中,结构化类型 Address_t 的实例的地址属性通过 observer 方法(被'..' 运算符指定的)进行检索并连接('||'运算符)到单一的字符串来形成一个邮寄地址。
在使用这个转换函数之前,我们必须使用 CREATE TRANSFORM 语句来联合带有组名和类型的 ADDRESS_TRANSFORM 转换函数。CREATE TRANSFORM 允许将现有的函数用作转换函数。如果在运行一个引用结构化类型的应用程序时,没有指定组名,那么 DB2 就会尝试使用一个称为 DB2_PROGRAM 的组名,并假定那就是为结构化类型定义的组名。如果 DB2_PROGRAM 还没有对结构化类型进行定义,那么您可以为结构化类型创建组。
- ››db2 对float类型取char后显示科学计数法
- ››DB2中出现SQL1032N错误现象时的解决办法
- ››DB2 锁升级示例
- ››db2诊断系列之---定位锁等待问题
- ››db2 命令选项解释
- ››DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 基础: 表空间和缓冲池
- ››DB2 XML 编程,第 1 部分: 理解 XML 数据模型
- ››DB2 pureScale 实战
更多精彩
赞助商链接