集合游标允许您访问 GBase 8s ESQL/C 集合变量的个别元素。要声明集合游标,请使用 DECLARE 语句,并将集合派生表段包括在与游标关联的 SELECT 语句中。在您以 OPEN 语句打开集合游标之后,该游标允许您来访问集合变量的元素。
要从集合游标每次访存一个元素,请使用 FETCH 语句和 INTO 子句。FETCH 语句标识以集合变量关联的集合游标。INTO 子句标识保留从集合游标访存的元素值的主变量。INTO 子句中的主变量的数据类型必须与集合的元素类型相配。
CREATE TABLE children ( age SMALLINT, name VARCHAR(30), fav_colors SET(VARCHAR(20) NOT NULL), )
EXEC SQL BEGIN DECLARE SECTION; client collection child_colors; varchar one_favorite[21]; char child_name[31] = "marybeth"; EXEC SQL END DECLARE SECTION; EXEC SQL allocate collection :child_colors; /* Get structure of fav_colors column for untyped * child_colors collection variable */ EXEC SQL select fav_colors into :child_colors from children where name = :child_name; /* Declare select cursor for child_colors collection * variable */ EXEC SQL declare colors_curs cursor for select * from table(:child_colors); EXEC SQL open colors_curs; do { EXEC SQL fetch colors_curs into :one_favorite; ... } while (SQLCODE == 0) EXEC SQL close colors_curs; EXEC SQL free colors_curs; EXEC SQL deallocate collection :child_colors;
在访存集合元素之后,您可以 UPDATA 或 DELETE 语句修改该元素。要获取更多信息,请参阅本文档中的 UPDATE 和 DELETE 语句。您还可以 INSERT 语句将新元素插入到集合变量内。要获取更多信息,请参阅 INSERT 语句。