使用 ALLOCATE DESCRIPTOR 语句为系统描述符区域(SDA)声明和分配内
存。在 ESQL/C 中使用此语句。
语法
GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 28
元素
描述
限制
语法
descriptor
未分配的系统描述符
区域的名称
包含在单引号 ( ' )
中。在 SDA 名称中必
须是唯一的
引用字符
串.
descriptor_var 用来存储系统描述符
区域名称的主机变量
必须包含未分配系统
描述符区域的名称
特定于语
言
items
descriptor 中项描述
符的数目。缺省值为
100 。
必须是大于零的无符
号 INTEGER
精确数值
items_var
包含项目数目的主变
量
数据类型必须为
INTEGER 或 SMALLINT
特定于语
言
用法
ALLOCATE DESCRIPTOR 语句创建新的系统描述符区域,该区域是内存中的一
个位置,存放 DESCRIBE 语句可以显示的信息,或存放关于查询的 WHERE 子
句的信息。
系统描述符区域(SDA)包含一个或多个称为 item descriptors 的字段。每个项描
述符都有一个数据库服务器可以接收或发送的数据值。项描述符也包含关于该数
据的信息,例如数据类型、长度、小数位、精度和可以为 NULL 值。
系统描述符区域存放 DESCRIBE ... USING SQL DESCRIPTOR 语句获取的信息,
或者存放关于一个动态执行语句中的 WHERE 子句的信息。
如果您分配一个系统描述符区域的名称与一个现有系统描述符区域的名称相同,
则数据库服务器返回一条错误消息。如果您使用 DEALLOCATE DESCRIPTOR
语句释放了该描述符,则 ALLOCATE DESCRIPTOR 语句可以重新使用同样的描
述符名称。
GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 29
WITH MAX 子句
您可以使用 WITH MAX 子句标识您需要的项描述符的最大数目。
当您使用此子句时,COUNT 字段设置为您指定的 items 数目。如果您不指定
WITH MAX 子句,COUNT 字段的缺省值为 100 。您可以使用 SET
DESCRIPTOR 语句更改 COUNT 字段的值。
ALLOCATE DESCRIPTOR 语句示例
以下示例显示了有效的 ALLOCATE DESCRIPTOR 语句。每个示例都包含 WITH MAX
子句。此示例使用嵌入的变量名称标识系统描述符区域,并指定所需的项描述
符:
EXEC SQL allocate descriptor :descname with max :occ;
下一示例使用加引号的字符串 desc1 作为系统描述符的标识,并且使用无符号整
数 3 指定该 desc1 区域中所需的项描述符的最大数目:
EXEC SQL allocate descriptor 'desc1' with max 3;