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列表''。