使用系统描述符区域(X/Open)

当您不知道在运行时 SELECT 或 EXECUTE FUNCTION(或 EXECUTE PROCEDURE)语句返回的返回值的数量或其数据类型时,可使用系统描述符区域来存储输出值。系统描述符区域描述一个或多个返回值的数据类型和内存位置,并符合 X/Open 标准。

关键字 USING SQL DESCRIPTOR 将系统描述符区域的名称引入您访存行的内容或用户定义的函数的返回值内。然后您可使用 GET DESCRIPTOR 语句来将 FETCH 语句返回的值从系统描述符区域传送到主变量内。

下列示例展示有效的 FETCH…USING SQL DESCRIPTOR 语句:
EXEC SQL allocate descriptor 'desc';
   ...
EXEC SQL declare selcurs cursor for 
   select * from customer where state = 'CA';
EXEC SQL describe selcurs using sql descriptor 'desc';
EXEC SQL open selcurs;
while (1)
   {
   EXEC SQL fetch selcurs using sql descriptor 'desc';

您还可使用 sqlda 结构来动态地提供参数。