CREATE ROW TYPE row_t (part_id INT, amt INT);
CREATE TABLE tab1 OF TYPE row_t;
INSERT INTO tab1 VALUES (ROW(1,7)); INSERT INTO tab1 VALUES (ROW(2,10));
CREATE TABLE tab2 (colx INT);
INSERT INTO tab2 VALUES ((SELECT t FROM tab1 t WHERE part_id = 1).part_id);
当您想要选择 ROW 类型列的所有字段时,星号形式的点表示法不是必须的,因为您可单独指定列名称来选择所有它的字段。然而,当您如在前面示例中那样使用子查询,或当您调用返回 ROW 类型值的用户定义的函数时,点表示法的星号形式可非常有用。
INSERT INTO mytab2 SELECT new_row (mycol).* FROM mytab1;
在分片表达式中不允许引用 ROW 类型列的字段或 ROW 类型表达式。分片表达式是在像 CREATE TABLE、CREATE INDEX 和 ALTER FRAGMENT 那样的 SQL 语句中定义表分片或索引分片的表达式。