可以对哪些扩展数据类型进行强制转型?

下表显示了可以进行强制转型的扩展数据类型组合。
表 1. 扩展数据类型组合
目标类型 不透明类型 单值类型 命名 ROW 类型 未命名 ROW 类型 集合类型 内置类型
不透明类型 显式或隐式 显式 显式 无效 无效 显式或隐式3
单值类型 显式3 显式 显式 无效 无效 显式或隐式
命名 ROW 类型 显式3 显式 显式3 显式1 无效 无效
未命名 ROW 类型 无效 无效 显式1 隐式1 无效 无效
集合类型 无效 无效 无效 无效 显式2 无效
内置类型 显式或隐式3 显式或隐式 无效 无效 无效 系统定义(隐式)
1 当两种 ROW 类型在结构上等价,或存在强制转型来处理相应字段类型不同的数据转换时适用。2 当存在强制转型来在各个集合类型的元素类型之间进行转换时适用。3 当存在用户定义的强制转型来在两种数据类型之间进行转换时适用。

该表只显示了源类型与目标类型之间的强制转型是否可能。在某些情况下,首先必须创建用户定义的强制转型,然后才能执行两种数据类型之间的转换。在其他情况下,数据库服务器提供隐式强制转型或必须显式调用的内置强制转型。