使用 ALLOCATE COLLECTION 语句为集合数据类型的变量(例如 LIST 、MULTISET 或 SET )或未归类的集合变量分配内存。
用法
该语句是 SQL ANSI/ISO 标准的扩展。在 ESQL/C 中使用此语句。
ALLOCATE COLLECTION 语句为可以存储 collection 数据类型的值的 ESQL/C 变量分配内存。
要为 GBase 8s ESQL/C 程序创建集合变量:
- 在 GBase 8s ESQL/C 程序中作为客户机集合变量声明集合变量。
集合变量可以是已归类或未归类的集合变量。 - 使用 ALLOCATE COLLECTION 语句为集合变量分配内存。
如果分配内存成功,ALLOCATE COLLECTION 语句会将 SQLCODE (也就是 sqlca.sqlcode)置零(0);如果失败,会将其设置成一个负数错误码。
当不再需要集合变量时,您必须使用 DEALLOCATE COLLECTION 语句显示地释放内存。在 DEALLOCATE COLLECTION 语句执行成功后,您可以重新使用该集合变量。
提示: ALLOCATE COLLECTION 语句仅为 GBase 8s ESQL/C 集合变量分配内存。要为 GBase 8s ESQL/C 行变量分配内存,请使用 ALLOCATE ROW 语句。
示例
以下示例显示如何使用 ALLOCATE COLLECTION 语句为未归类的集合变量 a_set 分配资源:
EXEC SQL BEGIN DECLARE SECTION;
client collection a_set;
EXEC SQL END DECLARE SECTION;
. . .
EXEC SQL allocate collection :a_set;
以下示例显示如何使用 ALLOCATE COLLECTION 语句为已归类的集合变量 a_typed_set 分配资源:
EXEC SQL BEGIN DECLARE SECTION;
client collection set(integer not null) a_typed_set;
EXEC SQL END DECLARE SECTION;
. . .
EXEC SQL allocate collection :a_typed_set;