streams trigger
把db1.A表的数据通过streams同步到db2.A表中,db2.A中有一个trigger用于记录一些log信息,
问题一是:当通过streams同步过来的数据,不会触发db2.A上的触发器,解决方法是在db2.A设置一下参数:
exec dbms_ddl.set_trigger_firing_property ('testuser', 'TR1_table_A', FALSE);
这个参数默认是true。设置好了,就可以触发db2.A上的触发器了。
但问题二是:这个触发器里面的user值无法得到,但其它的如sysdate则正常。而且如果是手工地在db2.A中插入一条数据,则user值则能得到。请问各位,通过streams同步过来的数据,触发器里不能得到这个user值吗?
这是db2.A上的触发器的SQL:
CREATE OR REPLACE TRIGGER TR1_table_A BEFORE UPDATE OR INSERT ON A FOR EACH ROW
BEGIN
IF dbms_ddl.is_trigger_fire_once('dms', 'TR1_table_A') THEN
insert into test1 values('true', to_char(sysdate,'DD/MM/YYYY HH24:MI:SS'));
ELSE
insert into test1 values('false', to_char(sysdate,'DD/MM/YYYY HH24:MI:SS'));
END IF;
IF USER IS NULL THEN
insert into test2 values('USER IS NULL', to_char(sysdate,'DD/MM/YYYY HH24:MI:SS'));
ELSE
insert into test2 values(USER, to_char(sysdate,'DD/MM/YYYY HH24:MI:SS'));
END IF;
END;
问题一是:当通过streams同步过来的数据,不会触发db2.A上的触发器,解决方法是在db2.A设置一下参数:
exec dbms_ddl.set_trigger_firing_property ('testuser', 'TR1_table_A', FALSE);
这个参数默认是true。设置好了,就可以触发db2.A上的触发器了。
但问题二是:这个触发器里面的user值无法得到,但其它的如sysdate则正常。而且如果是手工地在db2.A中插入一条数据,则user值则能得到。请问各位,通过streams同步过来的数据,触发器里不能得到这个user值吗?
这是db2.A上的触发器的SQL:
CREATE OR REPLACE TRIGGER TR1_table_A BEFORE UPDATE OR INSERT ON A FOR EACH ROW
BEGIN
IF dbms_ddl.is_trigger_fire_once('dms', 'TR1_table_A') THEN
insert into test1 values('true', to_char(sysdate,'DD/MM/YYYY HH24:MI:SS'));
ELSE
insert into test1 values('false', to_char(sysdate,'DD/MM/YYYY HH24:MI:SS'));
END IF;
IF USER IS NULL THEN
insert into test2 values('USER IS NULL', to_char(sysdate,'DD/MM/YYYY HH24:MI:SS'));
ELSE
insert into test2 values(USER, to_char(sysdate,'DD/MM/YYYY HH24:MI:SS'));
END IF;
END;
...全文
相关推荐
一步一步配置Oracle Stream
TABLESPACE users QUOTA 10M ON users;GRANT CREATE SESSION, CREATE STREAM, MANAGE STREAM, CREATE ANY TRIGGER
3_Flink window API .pptx
- **其他可选API** - **触发器(Trigger)**: 通过 `.trigger()` 方法定义窗口何时关闭并执行计算。例如,可以根据时间或数据量来触发窗口的关闭。
unity技能系統 带人释放动画 粒子系统
动画系统采用Animator组件配合自定义Avatar,通过参数控制Transition条件,例如使用Trigger类型参数触发技能动画片段,确保动画帧与技能生效帧严格对齐。
jdk1.8中文API及jQuery1.5中文API
**事件处理**:通过`.on()`、`.off()`、`.trigger()`等方法绑定和触发事件,简化了事件处理代码。4.
oracle cdc
- 实现方式通常依赖于触发器(trigger),用于捕获数据的变化。#### 异步模式异步模式基于 Oracle 流复制技术,通过从重做日志(redo log)中读取记录来捕获数据变化。


