返回首页

gbase数据、南大通用产品文档:GBase8s触发器管理

更新日期: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 时,数据库服务器启动回滚事务。