SQLCODE 与SQLSTATE

SQLCODE表示在执行SQL命令期间出现的情况,它返回的值及含义如下表所示:

表 -1

返回值 含义
0 SQL命令执行成功
+100 无数据返回
< 0 SQL命令执行出错,具体错误信息由SQLCA返回

除了SQLCODE以外,esql*C另外还提供了SQLSTATE。SQLSTATE 值是包含五个字符的字符串。下表列出了部分返回的SQLSTATE 值。

SQLSTATE 返回的字符串值由两个字符的类值后接三个字符的子类值组成。SQLSTATE为00000,表示命令执行正确。类值01 表明是一种警告。只要类值不是01,则表明是一种错误。任何类中子类值000 均用于实现给定类中所定义条件。这种类值和子类值的分配方法由SQL-92 定义。

表 -2

SQLCODE SQLSTATE 错误信息
0 00000 SQL命令执行成功
100 02000 无数据返回
0 01004 返回字符串溢出
-209 22002 返回空值,但是没有相应的indicator变量
-213 22024 插入字符串,宿主变量没有以'\0'结束
-246 22022 指示变量溢出

SQLSTATE列表请参见附录C,''SQLSTATE列表''。