将值插入到 ROW 类型列内

使用 VALUES 子句来将值插入到命名的或未命名的 ROW 类型列内,如下例所示:
CREATE ROW TYPE address_t 
   (
   street CHAR(20), 
   city CHAR(15),
   state CHAR(2),
   zipcode CHAR(9)
   );
CREATE TABLE employee 
   (
   name ROW ( fname CHAR(20), lname CHAR(20)),
   address address_t
   );
下一示例在 nameaddress 列中插入精确值:
INSERT INTO employee VALUES 
   (
      ROW('John', 'Williams'),
      ROW('103 Baker St', 'Tracy','CA', 94060)::address_t
   );

INSERT 使用 ROW 构造函数来生成 name 列(未命名的 ROW 数据类型)和 address 列(命名的 ROW 数据类型)的值。当您为命名的 ROW 数据类型指定值时,必须使用 CAST AS 关键字或双冒号(:: )运算符,以 ROW 数据类型的名称来将该值强制转型为命名的 ROW 数据类型。

要了解 ROW 构造函数的语法,请参阅“表达式”部分中的 构造函数表达式。要了解关于命名的 ROW 和未命名的 ROW 数据类型的精确值的信息,请参阅 Literal Row

当您在 VALUES 子句中使用 ROW 变量时,该 ROW 变量必须包含每一字段值的值。要获取更多信息,请参阅 插入到行变量(ESQL/C、SPL)内

您可使用 GBase 8s ESQL/C 主变量来以两种方式插入 nonliteral 值: