- 6
- 0
- 约1.89千字
- 约 46页
- 2017-04-22 发布于四川
- 举报
第三卷:UDT、UDF和大对象
第 3 卷:UDT、UDF 和大对象;第 1 单元;学习目标;用户定义类型(UDT)的概念 ;用户定义类型(UDT)的清晰类型;图 1. UDT:KM 与 MILES ;假设有一个应用程序用来确定美国和加拿大的商店之间的最佳路线。为了实现这个功能,必须同时使用公制和英制度量的长度。可能不知道表中存储的数据是以千米还是以英里为单位的。可以使用一个 UDT 创建一个 KM 类型,使用另一个 UDT 创建一个 MILES 类型。通过明确地使用这些类型,可以清楚地知道表中存储的是哪种度量方式的数据。还可以编写一个函数,用来自动地将 KM 和 MILES 类型的数据相加。 ;创建 UDT
可以用 CREATE DISTINCT TYPE 语句创建 UDT。该语句的语法如下:
-CREATE DISTINCT TYPE--distinct-type-name--AS----------------- --| source-data-type |--WITH COMPARISONS----------------------|
源数据类型可以是 DB2 所使用的任何标准数据类型
;创建 UDT
CREATE DISTINCT TYPE km AS INTEGER WITH COMPARISONS
CREATE DISTINCT TYPE miles AS INTEGER WITH COMPARISONS ;使用 UDT
通常,DB2 会自动地进行数据类型的转换,从而允许执行算术或比较操作。
但是对于 UDT 则不会如此。
Eg:
empno = CHAR(6) {but the data is always numeric} SQL String: SELECT (empno + 1) AS new_emp_no FROM employee ;转换
想要使用不同的 UDT 或数据类型进行比较或执行算术操作,可以使用 CAST 指令将它们转换成同一数据类型。以下是其语法:
CAST--(--objectName--AS--target-data-type--)----|
以上示例:
CAST (empno AS INTEGER) ;CREATE DISTINCT TYPE km AS INTEGER WITH COMPARISONS; CREATE DISTINCT TYPE miles AS INTEGER WITH COMPARISONS;
CREATE TABLE cityInfo ( cityName CHAR(20), width_k KM NOT NULL, width_m MILES NOT NULL ); ;下面的 SQL 语句会成功执行,因为 WHERE 子句中进行比较的数据类型正确地转换为相同的数据类型。这个 SQL 语句将整数 “10” 转换成 KM 类型以便进行比较。
SELECT cityName FROM cityInfo WHERE width_k km(10) ;?
SELECT cityName FROM cityInfo WHERE width_k width_m
下面的语句将成功执行,因为这两种数据类型都被转换成 INTEGER 类型。
SELECT cityName FROM cityInfo WHERE CAST(width_k AS INTEGER) CAST(width_m AS INTEGER) ;第 3 单元;学习目标;大对象(LOB)是什么?;BLOB;CLOB;DBCLOB;LOB 存储机理 ;大对象的数据操作 ;文件访问变量 ;员工数据的数据库表 ;Java 程序代码;Java 程序代码 … 2;Java 程序代码 … 3;Java 程序代码 … 4;Java 程序代码 … 5;Java 程序代码 … 6;Java 程序代码 … 7;Java 程序代码 … 8;Java 程序代码 … 9;Java 程序的屏幕快照;LOB 定位器;LOB 定位器 … 2;用 LOB 定位器对文档进行模式搜索;用 LOB 定位器对文档进行模式搜索 … 2;使用 LOB 定位器的 Java 程序;使用 LOB 定位器的 Java 程序 … 2;使用 LOB 定位器的 Java 程序 … 3;使用 LOB 定位器的 Java 程序 … 4;使用 LOB 定位器的 Java 程序 … 5;使用 LOB 定位器的 Java 程序 … 6;用 LOB 对象进行模式搜索的屏幕快照;小结
原创力文档

文档评论(0)