如果两种行类型之间的转换涉及显式强制转型以在特定字段值之间进行转换,可以对行类型值进行显式强制转型,但不需要对个别字段进行显式强制转型。
INSERT INTO tab1 VALUES (ROW( 3, 5.66::FLOAT::d_float))
INSERT INTO tab2 SELECT col1::ROW(a INT, b FLOAT) FROM tab1
在本示例中,由于从 d_float 到 FLOAT 的转换要求进行显式强制转型(将单值类型转换为它的源类型要求进行显式强制转型),所以用来转换 b 字段的强制转型是显式的。
通常,要在两个未命名行类型之间进行强制转型,并且一个或多个字段使用显式强制转型,则必须在行类型级别而不是字段级别进行显式强制转型。