DEALLOCATE COLLECTION 语句

使用 DEALLOCATE COLLECTION 语句释放先前通过 ALLOCATE COLLECTION 语句分配的集合变量的内存。

该语句是 SQL ANSI/ISO 标准的扩展。在 ESQL/C 中使用此语句。

语法

元素 描述 限制 语法
variable 标识要解除为其分配的内存的已归类的或未归类的集合变量的名称 必须是已分配的 GBase 8s ESQL/C 集合变量的名称 名称必须符合针对变量名称制定的语言特定规则

用法

DEALLOCATE COLLECTION 语句释放与 variable 标识的 GBase 8s ESQL/C 集合变量相关联的所有内存。您必须使用 DEALLOCATE COLLECTION 显式地释放集合变量的内存资源。否则,解除分配会在程序结束时自动发生。

DEALLOCATE COLLECTION 语句会释放已归类的和未归类的集合变量的资源。
提示: DEALLOCATE COLLECTION 语句只解除为 GBase 8s ESQL/C 集合变量分配的内存。要解除为 GBase 8s ESQL/C 行变量分配的内存,应使用 DEALLOCATE ROW 语句。

如果要解除分配一个不存在的集合变量或不是 GBase 8s ESQL/C 集合变量的变量,会导致错误。一旦解除分配一个集合变量,即可使用 ALLOCATE COLLECTION 来重新分配资源,然后重新使用一个集合变量。

此示例显示了如何使用 DEALLOCATE COLLECTION 语句解除分配给未归类的集合变量 a_set 的资源:
EXEC SQL BEGIN DECLARE SECTION;
                client collection a_set;
                EXEC SQL END DECLARE SECTION;
                . . .
                EXEC SQL allocate collection :a_set;
                . . .
                EXEC SQL deallocate collection :a_set;

相关示例,请参阅相关的概念,插入集合游标。