返回首页

gbase数据、南大通用产品文档:GBase8s错误捕获与恢复

更新日期:2024年09月11日

ON EXCEPTION 语句提供捕获任何错误的机制。
要捕获错误,请将一组语句包含在以 BEGIN 与 END 标记的语句块中,并在该语句块的
开头添加 ON EXCEPTION IN 语句。如果在跟在 ON EXCEPTION 语句之后的块中发生
错误,则您可采取恢复措施。
下图展示语句块内的 ON EXCEPTION 语句。
图: 捕获错误。
BEGIN
DEFINE c INT;
ON EXCEPTION IN

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司
- 332 -
(
-206, -- 表不存在
-217 -- 列不存在
) SET err_num

IF err_num = -206 THEN
CREATE TABLE t (c INT);
INSERT INTO t VALUES (10);
-- 在插入语句之后继续
ELSE
ALTER TABLE t ADD(d INT);
LET c = (SELECT d FROM t);
-- 在选择语句之后继续
END IF
END EXCEPTION WITH RESUME

INSERT INTO t VALUES (10); -- 如果 t 不存在,则失败

LET c = (SELECT d FROM t); -- 如果 d 不存在,则失败
END
当发生错误时,SPL 解释器搜索捕获该错误的最内层 ON EXCEPTION 声明。捕获错误之
后的第一个操作是重置该错误。当完成错误操作代码的执行时,且如果引起错误的 ON
EXCEPTION 声明包括了 WITH RESUME 关键字,则以跟在产生了该错误的语句之后的
语句自动地恢复执行。如果 ON EXCEPTION 声明未包括 WITH RESUME 关键字,则执
行完全地退出当前的块。

数据库具备基于审计的潜在侵害分析能力
1. sysdaa 登录审计工具,菜单-系统-审计规则配置,弹出审计配置对话框,勾
选选择审计分析类事件(侵害分析),确定
2. sysdba 尝试登录企业管理器,连续 5 次输入错误的口令,登录失败
3. sysdaa 登录审计工具,双击左树菜单-审计查看-侵害分析-潜在侵害,审计记
录中可见锁定用户的记录
4. 超过设定的用户锁定时间后(锁定时间为配置文件中 LOCKPERIOD 参数值),数
据库自动解锁用户

PUBLISH_SNAPSHOT 是DB4AI 特性用于发布快照的接口函数。通过语法PUBLISH
SNAPSHOT 调用。
参数
类型
描述
i_schema
IN NAME
快照存储的模式名字,默认
值是当前用户或者PUBLIC
i_name
IN NAME
快照名称
res
OUT db4ai.snapshot_name
结果