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

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

 2010-07-20 00:00:00 来源:WEB开发网   
核心提示: 我们将发出 CREATE TRANSFORM 语句,指定 Address_t 结构化类型和 DB2_PROGRAM 组名,DB2 基础: 结构化数据类型和类型化表简介(4),FROM SQL 子句定义了特定的函数,可以使用该函数将将一个值转换成表示结构化类型的内置数据类型, 随后的查询指定了 C

我们将发出 CREATE TRANSFORM 语句,指定 Address_t 结构化类型和 DB2_PROGRAM 组名。FROM SQL 子句定义了特定的函数,可以使用该函数将将一个值转换成表示结构化类型的内置数据类型。WITH FUNCTION 子句指定了转换函数(在这里,该函数为 ADDRESS_TRANSFORM)。

现在我们准备把一些值插入 CLIENTS 表中。INSERT 语句的 VALUES 子句包括对 address_t() 的调用,它调用了address_t 结构化类型的构造函数来创建一个所有属性都设置为空值的某一类型的实例。双点运算符调用了 mutator 方法来设置每个地址属性的值。

随后的查询指定了 CLIENTS 表中的 ADDRESS 列,从中检索地址信息,并将其作为连接的邮寄地址。

清单 1. 使用一个结构化数据类型作为普通表中某一列的类型

connect to sample
 
... 
 
create type address_t as (street varchar(12), city varchar(12), province varchar(12), 
 postal_code char(6)) mode db2sql 
create table clients (client_id integer generated always as identity, 
 client_lname varchar(12), client_fname varchar(12), address address_t) 
create function address_transform (addr address_t) returns varchar(42) language sql 
 return addr..street || ', ' || addr..city || ', ' || addr..province || 
 ' ' || addr..postal_code 
create transform for address_t db2_program (from sql with function address_transform) 
insert into clients (client_lname, client_fname, address) values ('Nicholson', 'James', 
 address_t() ..street('20 Indian Rd') ..city('Toronto') ..province('Ontario') 
 ..postal_code('M6T2R1')) 
select client_id, client_fname, client_lname, address from clients 
CLIENT_ID  CLIENT_FNAME CLIENT_LNAME ADDRESS 
----------- ------------ ------------ ------------------------------------------ 
     21 James    Nicholson  20 Indian Rd, Toronto, Ontario M6T2R1 
 1 record(s) selected. 
connect reset 

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

Tags:DB 基础 结构化

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