定义一个包
CREATE OR REPLACEPACKAGE "DOCU"."PKG_UPD_REC" as
G_KEY2 NUMBER(2):=0;
end;
定义一个行级触发器
CREATE OR REPLACE TRIGGER "DOCU"."TRG_UPD_REC" AFTER
INSERT ON "DOCU"."DOCUMENT" FOR EACH ROW DECLARE
flag INT;
BEGIN
PKG_UPD_REC.G_KEY2:=:NEW.document_no;
END IF;
END;
定义一个表级触发器
CREATE OR REPLACE TRIGGER "DOCU"."TRG_UPD_REC_ALL" AFTER
INSERT ON "DOCU"."DOCUMENT"
BEGIN
UPDATE DOCUMENT SET ENTERED_DATE=SYSDATE WHERE DOCUMENT_NO=PKG_UPD_REC.G_KEY2;
PKG_UPD_REC.G_KEY2 :=0;
END;
目的是,当行级触发器发现符合条件的记录时,保存该条记录的document_no,然后在表级触发器里更新本表中该document_no的其条几条记录。
问题是,当不同的客户端插入表时,每个客户端保存的PKG_UPD_REC.G_KEY2是否会相互覆盖?
包的作用域是什么,是全局的还是仅限于某客户端?