带有“集合派生的表”段的 UPDATE 语句允许您在 row 变量中更新字段。“集合派生的表”段标识要在其中更新字段的 row 变量。要获取更多信息,请参阅 集合派生表。
要更新字段
EXEC SQL BEGIN DECLARE SECTION; row (x int, y int, length float, width float) myrect; EXEC SQL END DECLARE SECTION; . . . EXEC SQL select into :myrect from rectangles where area = 64; EXEC SQL update table(:myrect) set x=3, y=4;
假设在 SELECT 语句之后,myrect2 变量有值 x=0、y=0、length=8 以及 width=8。 在 UPDATE 语句之后,myrect2 变量有字段值 x=3、y=4、length=8,以及 width=8。 您不可使用 INSERT 语句的“集合派生的表”段中的 row 变量。
然而,您可使用 UPDATE 语句和“集合派生的表”段来将新字段插入到 row 主变量之内,如果您为该行中的每个字段都指定值的话。
EXEC SQL update table(:myrect) set x=3, y=4, length=12, width=6; EXEC SQL insert into rectangles values (72, :myrect);
如果该 row 变量是非类型的变量,则您必须在 UPDATE 之前使用 SELECT,以便 GBase 8s ESQL/C 可确定这些字段的数据类型。row 变量中字段的 UPDATE 不可包括 WHERE 子句。
要获取 SPL ROW 变量的示例,请参阅 GBase 8s SQL 教程指南。要获取关于使用 GBase 8s ESQL/C row 变量的更多信息,请参阅 GBase 8s ESQL/C 程序员手册 中对复杂数据类型的讨论。