A,B两个表空间,各有一个表base_info,其表结构相同,如下:base_info:aa01 varchar(30);
aa02 varchar(100);
aa03 varchar(300);现在打算实现两个表空间的base_info表数据同步..当A.base_info中有增删改操作时要把改动的数据写到B.base_info中去.
CREATE OR REPLACE TRIGGER ttt01
AFTER DELETE OR INSERT OR UPDATE
ON A.base_info
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
.
.
...
aa02 varchar(100);
aa03 varchar(300);现在打算实现两个表空间的base_info表数据同步..当A.base_info中有增删改操作时要把改动的数据写到B.base_info中去.
CREATE OR REPLACE TRIGGER ttt01
AFTER DELETE OR INSERT OR UPDATE
ON A.base_info
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
.
.
...
解决方案 »
- ERROR:ORA-12705: 无法访问 NLS 数据文件, 或者指定的环境无效
- ORA-01461错误
- 触发器影响Java的批处理的提交?
- 关于decode()翻译字典表,请假各位高手
- 求助expdp
- 请问大侠:Oracle的udump目录下为什么会生成大量trc文件?
- 如何让oracle只绑定机器名,不要绑定IP,我安在本本上来回换地方,服务都起不来。烦
- JDBC连接oracle提示Connection refused!!!在线等
- 求助!!关于extent的管理方式!!
- sys/change_on_install 怎么不能as sysdba???
- 数据锁问题
- 关于VIEW的限制条件的奇怪问题
触发器很简单
create or replace trigger trgname
after insert or update or delete on tbname
for each row
begin
if inserting then
insert into uname.tbname values(:new.col1,:new.col2...);
elsif updating then
update uname.tbname set ... where colid=:old.colid ... ;
else
delete from uname.tbname where where colid=:old.colid;
end trgname;
/
2 BUILD IMMEDIATE
3 USING NO INDEX
4 REFRESH FAST ON COMMIT WITH ROWID
5 AS
6 SELECT * FROM TEST.A;实体化视图已创建。SQL> INSERT INTO TEST.A VALUES('1','A');已创建 1 行。SQL> COMMIT;提交完成。SQL> SELECT *FROM TEST.B;TT MM
-- ---
1 A注意:由于同一个用户下不能有同名的表和实体化视图,因此创建实体化视图之前,需要先drop表
AFTER DELETE OR INSERT OR UPDATE
ON A.info1
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
case
when inserting then
insert into B.info1 values(:NEW.a1,:NEW.a2);
when updating then
update B.info1 set a2=:NEW.a2 where a1=:NEW.a1;
when deleting then
delete from B.info1 where a1=:NEW.a1;
end case;
END;找不到表info1,跨表空间怎么整