SQLCODE 字段是数据库服务器的主要返回代码。在每个 SQL 语句之后,将 SQLCODE
设置为如下表所示的一个整数值。当那个值为零时,无误地执行该语句。特别地,当假定
一个语句将数据返回到主变量内时,代码零意味着已返回了该数据且可使用它。任何非零
代码都意味着相反的意思。未将有用的数据返回到了主变量。
表 1. SQLCODE 的值
返回值
解释
值 < 0
指定一个错误代码。
值 = 0
指示成功。
0 < 值 < 100 在 DESCRIBE 语句之后,表示描述 SQL 语句的类型的一个整数值。
100
在未返回行的成功查询之后,指示 NOT FOUND 条件。在 INSERT
GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司
- 208 -
返回值
解释
INTO/SELECT、UPDATE、DELETE 或 SELECT... INTO TEMP 语句未能访
问任何行之后,NOT FOUND 还可发生在符合 ANSI 的数据库中。
数据的结束
当正确地执行语句,但未找到行时,数据库服务器将 SQLCODE 设置为 100。在两种情况
下可发生此情况。
第一种情况涉及使用游标的查询。
(检索多行 描述使用游标的查询。
)
在这些查询中,
FETCH
语句将来自活动集的每一值检索到内存内。检索最后一行之后,后续的 FETCH 语句不可
返回任何数据。当发生此情况时,数据库服务器将 SQLCODE 设置为 100,指示数据的结
束,找不到行。
第二种情况涉及不使用游标的查询。在此情况下,当没有行满足查询条件时,数据库服务
器将 SQLCODE 设置为 100。
在不符合 ANSI 的数据库中,
仅不返回行的 SELECT 语句
会导致将 SQLCODE 设置为 100。
在符合 ANSI 的数据库中,如果未返回行,则 SELECT、DELETE、UPDATE 和 INSERT
语句都将 SQLCODE 设置为 100。
负代码
在语句期间,
当发生意外错误时,
数据库服务器在 SQLCODE 中返回一个负数值来说明该
问题。在联机错误消息文件中记录这些代码的含义。