REXX SQLCA

REXX SQLCA由一组变量组成,而不是一个结构。 Db2 使SQLCA自动可用于您的应用程序。

下表列出了REXX SQLCA中的变量。

表 1. REXX SQLCA中的变量
变量 内容
SQLCODE 包含SQL返回代码。
sqlerrmc 包含一个或多个以X'FF' 分隔的标记,用于替换错误条件描述中的变量。 它可能包含截断的标记。 消息长度为70字节,可能被截断。
SQLERRP 提供产品签名,并在出错时提供诊断信息,例如检测到错误的模块名称。 对于 Db2 for z/OS® ,产品签名是“DSN”。
SQLERRD.1 对于敏感的静态光标,当光标位置在最后一行之后时(即当SQLCODE等于+100时),包含结果表中的行数。

SQLERRD(1) 也可以包含一个内部错误代码。

SQLERRD.2 对于敏感的静态光标,当光标位置在最后一行之后时(即当SQLCODE等于+100时),包含结果表中的行数。

SQLERRD(2) 也可以包含一个内部错误代码。

SQLERRD.3 包含在SQL数据更改语句后符合操作条件的行数(但不包括因CASCADE删除而删除的行)。 对于带有SQL数据更改语句的SELECT或SELECT INTO,SQLERRD(3)包含受嵌入数据更改语句影响的行数。 如果SQL语句失败,则设置为0,表示在执行语句时所做的所有更改都被取消。 当DELETE语句或视图定义中不包括选择标准时,请发送邮件至 -1 ,以便从分段表空间中的表中执行批量删除、截断操作或从视图中删除。

对于行集导向的FETCH语句,包含行集中返回的行数。

对于SQLCODES -911和-913,SQLERRD(3)包含超时或死锁的原因代码。

成功执行REFRESH TABLE语句后,SQLERRD(3)包含插入到物化查询表中的行数。

当解析动态语句时遇到错误,或者当解析、绑定或执行本机 SQL 过程时,SQLERRD(3) 将包含遇到错误的行号。 SQLCAID的第六个字节必须为“L”,才能成为有效的行号。 只有当语句源包含新的行控制字符时,该值才有意义。 外部SQL程序不会返回此信息。

SQLERRD.4 通常包含计时器,这是一个浮点小数值,用于大致估算所需资源。 该值并不反映执行SQL语句所需时间的估计值。 在您编写 SQL 语句后,您可以使用此字段来指示已编写 SQL 语句的相对成本。 对于特定的语句,此数字可能会因目录中统计数据的更改而变化。 此数值在 Db2 for z/OS 发布版本之间可能会有所变化。
SQLERRD.5 包含PREPARE或EXECUTE IMMEDIATE语句语法错误的行或列。
SQLERRD.6 包含一个内部错误代码。
SQLWARN.0 如果其他指示器未设置为警告状态(即没有其他指示器包含W或Z),则包含一个空白。 如果至少有一个其他指标包含W或Z,则包含W。
SQLWARN.1 如果字符串列的值在赋给宿主变量时被截断,则包含一个W。 在OPEN CURSOR或ALLOCATE CURSOR语句后,包含一个表示不可滚动光标的N和一个表示可滚动光标的S。
SQLWARN.2 如果从聚合函数的参数中删除了空值,则包含 W;对于 MIN 函数,不一定要设置为 W,因为其结果不依赖于空值的删除。
SQLWARN.3 如果结果列的数量大于宿主变量的数量,则包含一个W。 如果关联定位器语句中的定位器数量少于存储过程返回的数量,则包含Z。
SQLWARN.4 如果准备好的UPDATE或DELETE语句不包含WHERE子句,则包含W。 对于可滚动光标,在OPEN CURSOR或ALLOCATE CURSOR语句后包含一个D表示灵敏动态光标,I表示不灵敏光标,S表示灵敏静态光标;否则,如果光标不可滚动,则留空。
SQLWARN.5 如果SQL语句在 Db2 for z/OS 中不是有效的SQL语句,则包含W,表示该语句未被执行。 包含一个字符值,1(只读)、2(可读可删除)或4(可读可删除可更新),用于反映光标在OPEN CURSOR或ALLOCATE CURSOR语句后的能力。
SQLWARN.6 如果将日期或时间戳值加上月份或年份会导致日期无效(例如,6月31日),则包含W。 表示日期已更改为当月的最后一天,以确保结果有效。
SQLWARN.7 如果用作十进制乘除运算操作数的数字的小数部分有一个或多个非零数字被删除,则包含一个W。
SQLWARN.8 如果无法转换的字符被替换为替代字符,则包含W。
SQLWARN.9 如果在COUNT或COUNT_BIG处理过程中忽略算术异常,则包含W。 如果存储过程返回多个结果集,则包含一个Z。
SQLWARN.10 如果SQLCA中至少有一个字符字段因字符转换错误而无效,则包含W。
SQLSTATE 包含最近一次执行 SQL 语句的结果的返回代码。