返回首页

gbase数据、南大通用产品文档:GBase8a审计管理

更新日期:2024年09月11日

通过本功能您可以对日志进行管理,左侧树结构如下图所示:

GBaseDataStudio 管理工具手册
- 104 -
南大通用数据技术股份有限公司
图5- 442 审计管理查看左侧树

触发操作是当触发事件发生时执行的 SQL 语句。触发操作可以由 INSERT 、DELETE 、
UPDATE 、EXECUTE FUNCTION 和 EXECUTE PROCEDURE 语句组成。但是,除了指
定要执行什么操作外,还必须就触发语句何时执行这些操作。您有以下选择:

在触发语句执行之前

在触发语句执行之后

针对触发语句作用的每一行
表上的单个触发器可以为上述每一时间定义操作。
要定义触发操作,指定该操作何时发生,然后提供要执行的 SQL 语句,可使用关键字
BEFORE 、AFTER 或 FOR EACH ROW 指定该操作何时发生。然后是括在圆括号中的触
发操作。下面的触发操作定义指定在触发语句之前执行 SPL 例程 upd_items_p1 :
BEFORE(EXECUTE PROCEDURE upd_items_p1) -- a BEFORE action

对标识符的引用可以通过作用域和可见度来进行解析。
l
作用域:引用标识符的程序单元区域。
l
可见度:一个标识符只有在他的作用域内才能可见。可以在作用域内不使用限定
词而直接引用。
如下图:

GBase 8s PL/SQL手册
南大通用数据技术股份有限公司
- 14 -


声明的标识符对于所在块就是本地的,对于子块就是全局的。如果全局标识符在子块
中重新定义,那么两个变量在子块的作用域都是存在的,但只有本地标识符是可见的,如
果这时候想引用全局标识符,就要加限定符。虽然不能再同一块中两次声明同一标识符,
但可以在不同的块中声明同一标识符。这两个标识符是相互独立的,互不影响。但一个块
中不能引用另一同级别块中的变量。因为对他而言,同级块中的标识符既不是本地也不是
全局的。
--Outer block:
DECLARE
a CHAR; -- Scope of a (CHAR) begins
b REAL; -- Scope of b begins
BEGIN
-- Visible: a (CHAR), b
-- First sub-block:

GBase 8s PL/SQL手册
南大通用数据技术股份有限公司
- 15 -

DECLARE
a INTEGER; -- Scope of a (INTEGER) begins
c REAL; -- Scope of c begins
BEGIN
-- Visible: a (INTEGER), b, c
NULL;
END; -- Scopes of a (INTEGER) and c end

-- Second sub-block:
DECLARE
d REAL; -- Scope of d begins
BEGIN
-- Visible: a (CHAR), b, d
NULL;
END; -- Scope of d ends
-- Visible: a (CHAR), b
END; -- Scopes of a (CHAR) and b end

<> -- label
DECLARE
birthdate DATE := TO_DATE('09-AUG-70', 'DD-MON-YY');
BEGIN
DECLARE
birthdate DATE := TO_DATE('29-SEP-70', 'DD-MON-YY');
BEGIN
IF birthdate = outer.birthdate THEN
DBMS_OUTPUT.PUT_LINE ('Same Birthday');
ELSE
DBMS_OUTPUT.PUT_LINE ('Different Birthday');
END IF;
END;
END;

--Result:
--Different Birthday