设为首页 加入收藏

TOP

DB2用户自定义数据类型UDT(二)
2014-11-23 21:30:07 来源: 作者: 【 】 浏览:19
Tags:DB2 用户 定义 数据 类型 UDT
4 条记录已选择。
db2 => select count(*) from travel where mdistance > kdistance
SQL0401N 运算 ">" 的操作数的数据类型不兼容或者不可比较。 SQLSTATE=42818
db2 => 42818
SQLSTATE 42818: 运算符或函数的操作数不兼容或者不可比较。
通过将kilometers类型先转换为其基类型integer,在转换为miles类型,就可以与miles类型的数据进行比较了。
实际上,所有基于自定义单值数据类型的比较操作,都需要将该UDT转换为其基类型,在进行比较或者转换操作。
db2 => select * from travel where mdistance > miles(integer(kdistance))
ID KDISTANCE MDISTANCE
--------- ----------- -----------
SCCD00001 29 34
1 条记录已选择。
db2 => select * from travel where mdistance > 20
SQL0401N 运算 ">" 的操作数的数据类型不兼容或者不可比较。 SQLSTATE=42818
db2 => select * from travel where mdistance > integer(20)
SQL0401N 运算 ">" 的操作数的数据类型不兼容或者不可比较。 SQLSTATE=42818
db2 => select * from travel where mdistance > miles(20)
ID KDISTANCE MDISTANCE
--------- ----------- -----------
SCCD00001 29 34
LNDL00001 45 33
2 条记录已选择。
★总之,同类型之间的数据才可以进行比较!
3、删除
drop [distinct] type type_name
删除自定义数据类型的时候,要注意,不能有列或者其他对象引用这个UDT,否则将会报错:
SQL0478N 不能对对象类型 "TYPE" 执行 DROP、ALTER、TRANSFER OWNERSHIP 或REVOKE,
因为它有一个类型为 "TABLE" 的从属对象 "ADMINISTRATOR.TRAVEL"。SQLSTATE=42893
db2 => drop type kilometers
DB20000I SQL 命令成功完成。
db2 => drop type miles
DB20000I SQL 命令成功完成。
来源:http://blog.csdn.net/bobo12082119/article/details/8770549
--the end--
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇使用事件监控器监控SQL语句 下一篇DB2的游标(update时的问题)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: