DB2 基础: 结构化数据类型和类型化表简介
2010-07-20 00:00:00 来源:WEB开发网我们将发出 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
- ››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 实战
更多精彩
赞助商链接