对未命名行类型的字段进行显式强制转型

如果两种行类型之间的转换涉及显式强制转型以在特定字段值之间进行转换,可以对行类型值进行显式强制转型,但不需要对个别字段进行显式强制转型。

以下语句显示如何将值插入到 tab1 表中:
INSERT INTO tab1 VALUES (ROW( 3, 5.66::FLOAT::d_float))
要将 tab1col1 中的值插入到 tab2col2 中,由于数据库服务器不会自动处理 tab1d_float 单值类型到 tab2 表的 FLOAT 类型的转换,所以必须显式地对行值进行强制转型:
INSERT INTO tab2 SELECT col1::ROW(a INT, b FLOAT) FROM tab1

在本示例中,由于从 d_float 到 FLOAT 的转换要求进行显式强制转型(将单值类型转换为它的源类型要求进行显式强制转型),所以用来转换 b 字段的强制转型是显式的。

通常,要在两个未命名行类型之间进行强制转型,并且一个或多个字段使用显式强制转型,则必须在行类型级别而不是字段级别进行显式强制转型。