WEB开发网
开发学院数据库DB2 DB2 基础: 结构化数据类型和类型化表简介 阅读

DB2 基础: 结构化数据类型和类型化表简介

 2010-07-20 00:00:00 来源:WEB开发网   
核心提示: 一个详细的例子在该例中,我们将使用 DB2 UDB 附带的 SAMPLE 数据库,DB2 基础: 结构化数据类型和类型化表简介(3),例子只要求一个数据库连接来启动操作,不要求其他任何东西,并假定那就是为结构化类型定义的组名,如果 DB2_PROGRAM 还没有对结构化类型进行定义,对此,SAM

一个详细的例子

在该例中,我们将使用 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 还没有对结构化类型进行定义,那么您可以为结构化类型创建组。

上一页  1 2 3 4 5 6  下一页

Tags:DB 基础 结构化

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接