更新日期:2024年09月11日
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 中返回一个负数值来说明该
问题。在联机错误消息文件中记录这些代码的含义。
当创建逻辑日志文件时,使用 LOGSIZE 配置参数来指定使用的文件大小。
onconfig.std 值
LOGSIZE 10000
单位
KB
值
整数值。
最小值 = 200
当数据库服务器首次初始化时,最大值 = (ROOTSIZE - PHYSFILE - 512 - (63 *
pagesize/1024)) / LOGFILES
pagesize 值是操作系统的缺省系统页大小。
如果您扩展 root dbspace 或将逻辑日志移到一个不同的 dbspace,则逻辑日志文件大小
的最大值不能超过下列与页大小相依的值:
1 GB,当页大小 = 2 KB
2 GB,当页大小 = 4 KB
GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 101 -
此限制是日志位置可以为那些页大小描述的页的最大数目。
生效
编辑 onconfig 文件并重启数据库服务器之后。
当您通过运行 onmode -wf 命令在 onconfig 文件中动态地重置该值时。
当您通过运行 onmode -wm 命令重置内存中的该值时。
用法
当您更改 LOGSIZE 配置参数的值时,
仅影响新的日志文件。
现有的日志文件的大小不更改。
逻辑日志大小的合计是 LOGSIZE 配置参数设置与 LOGFILES 配置参数值的乘积。然而,如
果您更改 LOGSIZE 配置参数的值,
则所有逻辑日志文件的大小合计依赖于每个大小的日志
文件的数目。
如果启用 AUTO_LLOG 配置参数,则根据需要自动地添加逻辑日志文件来提高性能,直到逻
辑日志大小合计达到可配置最大值。
要验证您的平台上数据库服务器的页大小,请运行 onstat -b 命令。
如果您声明一个智能大对象列的日志记录,则您必须确保此逻辑日志比插入或更新期间日
志记录的数据量大许多。数据库服务器不可备份打开的事务。如果许多事务是活动的,则
合计日志记录活动必须不强制打开的事务到日志备份文件。例如,如果您的日志大小是
1000 KB 且高水印是 60%,则不为智能大对象更新使用多于 600 KB 逻辑日志。当达到高
水印 600 KB 时,数据库服务器启动回滚事务。