必须先存在一种用于处理对应字段数据类型之间的转换的强制转型(由系统定义或用户定义), 才能在字段中包含不同数据类型的两种行类型(命名行类型或未命名行类型)之间进行显式强制转型。
当在两种行类型之间进行显式强制转型时,数据库服务器自动调用处理字段数据类型之间的转换所必需的任何显式强制转型。换而言之,当对行类型值执行显式强制转型时,除非必须进行多个级别的强制转型来对行类型的个别字段处理强制转型,否则不必显式地对该字段进行强制转型。
CREATE DISTINCT TYPE d_float AS FLOAT; CREATE ROW TYPE row_t (a INT, b d_float); CREATE TABLE tab1 (col1 ROW (a INT, b d_float)); CREATE TABLE tab2 (col2 ROW (a INT, b FLOAT)); CREATE TABLE tab3 (col3 row_t);