REXX SQLDA

REXX SQLDA由一组具有共同词干的REXX变量组成。 该变量名必须为REXX变量名,不能包含句点,且与在SQL语句中使用SQLDA时指定的描述符名称的值相同。 Db2 不支持REXX中的INCLUDE SQLDA语句。

下表显示了REXX SQLDA中的变量名称。 表格第二列中的值是 Db2 在执行语句时插入SQLDA中的值。 除非另有说明,否则表格第三列中的值是应用程序在执行语句之前必须放入SQLDA中的值。

表 1. REXX SQLDA的字段
变量名称
在描述
和准备进入时使用
在FETCH、OPEN、
EXECUTE和CALL中的用法
stem.SQLD
SQLDA中描述的列的数量。 如果“同时使用”出现在“描述”或“准备放入”语句中,则数量加倍。 如果语句字符串不是查询,则包含0。

对于描述过程,存储过程返回的结果集的数量。 如果没有返回结果集,则包含0。

SQL语句使用的宿主变量数量。
每个SQLDA都包含以下变量的 stem.SQLD。 因此, 1<=n<=stem.SQLD。 结果表的每一列或SQLDA描述的主变量中,每个变量出现一次。
stem.n.SQLTYPE 指示列或参数的数据类型以及是否可包含空值。 有关类型代码的说明,请参阅 SQLDA的SQLTYPE和SQLLEN字段

对于不同的类型,该字段中会显示该类型所基于的数据类型。 基本SQLVAR没有表明这是不同类型描述的一部分。

指示宿主变量的数据类型以及是否提供了指示变量。 日期时间值的宿主变量必须是字符串变量。 对于FETCH来说,日期时间类型代码是指固定长度的字符串。 有关类型代码的说明,请参阅 SQLDA的SQLTYPE和SQLLEN字段

更改开始主机变量的数据类型不能是BLOB定位器、CLOB定位器或DBCLOB定位器。更改结束

更改开始.SQLLONGL stem.n.SQLLONGL更改结束 更改开始对于LOB列,表示值或参数的字符串长度。更改结束 更改开始对于具有LOB数据类型的主变量,主变量的长度属性。 有关支持的值的描述,请参阅 SQLDA的SQLTYPE和SQLLEN字段更改结束
更改开始.SQLLEN stem.n.SQLLEN更改结束 更改开始对于 DECIMAL、NUMERIC 或 LOB 列以外的列,列或参数的长度属性。 对于日期时间数据,表示该值字符串的长度。 请参阅 SQLDA的SQLTYPE和SQLLEN字段 ,了解允许值的说明。 更改结束 更改开始对于没有十进制或LOB数据类型的主变量,主变量的长度属性。 请参阅 SQLDA的SQLTYPE和SQLLEN字段 ,了解允许值的说明。 更改结束
stem.n.SQLLEN.SQLPRECISION 对于十进制或数字列,列或参数的精度。 对于十进制数据类型的主变量,主变量的精度。
stem.n.SQLLEN.SQLSCALE 对于十进制或数字列,列或参数的刻度。 对于十进制数据类型的主变量,主变量的比例。
stem.n.SQLCCSID 对于字符串列或参数,列或参数的CCSID。 对于字符串宿主变量,宿主变量的 CCSID。
stem.n.SQLUSECCSID 未使用。 设置一个新的CCSID。 如果设置,REXX将更改SQLDATA的CCSID。
stem.n.SQLLOCATOR 对于描述过程,结果集定位器的值。 未使用。
stem.n.SQLDATA 未使用。 在执行或打开之前,包含输入主机变量的值。 应用程序必须提供此值。

FETCH之后,包含输出主机变量的值。

stem.n.SQLIND 未使用。 在执行或打开之前,包含一个负数,表示 stem.n.SQLDATA中的输入主机变量为空。 应用程序必须提供此值。

FETCH之后,如果.SQLDATA stem.n.SQLDATA中的输出主机变量值为空时,包含一个负数。

stem.n.SQLNAME 结果表中第n列的名称。 对于描述过程,包含存储过程用于返回结果集的光标名称。 SQLNAME的值按照存储过程打开游标的顺序显示。 未使用。
更改开始.SQLTNAME stem.n.SQLTNAME更改结束 更改开始

结果表中第n列的完全限定且不同的类型名称。 如果限定名称超过30个字节,则会被截断。

更改结束
更改开始未使用。更改结束