使用星号表示法来访问行类型的所有字段

星号符号表示法仅在 SELECT 语句的选择列表中受支持。为投影列表中的行类型列指定列名时,数据库服务器返回列的所有字段的值。想要投影 ROW 类型内的所有字段时,还可以使用星号符号表示法。

下列查询使用星号符号表示法来返回 employee 表中 address 列的所有字段。

图: 查询

SELECT address.* FROM employee;

图: 查询结果

address   ROW(102 Ruby, Belmont, CA, 49932, 1000)
          address   ROW(133 First, San Jose, CA, 85744, 4900)
          address   ROW(152 Topaz, Willits, CA, 69445, 1000))
          ⋮
星号符号表示法使得执行某些 SQL 任务更容易。假设您创建返回行类型值的函数 new_row() 并且想要调用此函数并将返回的行插入到表中。数据库服务器没有提供处理此类操作的简便方法。但是,以下查询显示如何使用星号表示法来返回 new_row() 的所有字段并将返回的字段插入到 tab_2 表中。

图: 查询

INSERT INTO tab_2 SELECT new_row(exp).* FROM tab_1
有关如何使用 INSERT 语句的信息,请参阅修改数据
Important: 只能对使用 .* 符号表示法的表达式求值一次。