要为集合变量声明 Insert 游标,应将集合派生的表这一段同与集合游标相关联的 INSERT 语句包括在一起。一个 Insert 游标允许您从集合变量选择一个或多个元素。(有关对 INSERT 语句和使用的描述,请参阅 INSERT 语句。)
该 Insert 游标必须是一个顺序游标。即,DECLARE 语句不能指定 SCROLL 关键字。
当您为集合变量声明 Insert 游标,INSERT 语句的集合派生表子句必须包含集合变量的名称。您不能为此集合变量指定一个输入参数(问号(?))。但是,可以在 INSERT 语句的 VALUES 子句中使用输入参数。该参数指示集合元素稍后将由 PUT 语句的 FROM 子句提供。
包括 INSERT 语句和集合派生表子句的集合游标允许您将多个元素插入一个集合变量。
要插入多个元素:
EXEC SQL BEGIN DECLARE SECTION; client collection multiset(smallint not null) a_mset; int an_element; EXEC SQL END DECLARE SECTION; ... EXEC SQL declare mset_curs cursor for insert into table(:a_mset) values (?); EXEC SQL open mset_curs; while (1) { ... EXEC SQL put mset_curs from :an_element; ... }
要将元素插入集合变量,可使用 FROM 子句的 PUT 语句。有关对 INSERT 语句使用集合游标的代码示例,请参阅插入到 Collection 游标内。