REXX SQLDA
REXX SQLDA由一组具有共同词干的REXX变量组成。 该变量名必须为REXX变量名,不能包含句点,且与在SQL语句中使用SQLDA时指定的描述符名称的值相同。 Db2 不支持REXX中的INCLUDE SQLDA语句。
下表显示了REXX SQLDA中的变量名称。 表格第二列中的值是 Db2 在执行语句时插入SQLDA中的值。 除非另有说明,否则表格第三列中的值是应用程序在执行语句之前必须放入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字段。
|
.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个字节,则会被截断。 ![]() |
未使用。![]() |
主机变量的数据类型不能是BLOB定位器、CLOB定位器或DBCLOB定位器。