1、 先建立DATABASE LINK于A上: CREATE DATABASE LINK A_2_B CONNECT TO 用户名 IDENTIFIED BY 密码 USING B实例名2、使用如下方法访问B的表 select * from table1@A_2_B
建立个dblink,直接在trigger中就可以实现了
dblink创建语法: create database link linkname connect to user identified by usrpwd using 'demona';其中 --demona为用net8 easy config创建的连接字符串 目的方数据库的init.ora文件中的global_names设为false 重新启动数据库设置才能生效 或者用sys用户执行 alter system set global_names=false;创建trigger的例子: create or replace trigger trg_demo before update on tbname for each row begin update tbname@linkname set col1=:new.col1,col2=:new.col2 ... where id=:new.id; end trg_demo; /
to bzszp(SongZip) : 请问您给的触发器例子中 create or replace trigger trg_demo before update on tbname for each row begin update tbname@linkname set col1,col2=:new.col2 ... where id=:new.id; end trg_demo; /col1是不是代表B数据库的一个字段,:new.col1 是不是A数据库的表的相同字段?
以下这是我的测试表,能否帮我针对这个例子写个呢,谢谢create table linktest( name varchar2(20), sex char(6), address varchar2(100) );
create or replace trigger trg_up_data before update on linktest for each row begin update linktest@linkname set name=:new.name,sex=:new.sex,address=:new.address where name=:new.name; end trg_demo; /
这个是我创建的触发器,请看看是否正确?create or replace trigger trg_up_data before update on linktest for each row begin update linktest@OFFICECN_CMS set name=:new.name,sex=:new.sex,address=:new.address where name=:new.name; end trg_demo; /这个是DBLINK create database link OFFICECN_CMS connect to store identified by store using 'OFFICECN_2_CMS';
to bzszp(SongZip) ,你们是这样做两数据库同步的吗,那如果被控数据库中网络出了故障,那段时间的数据如何处理呢
先建立DATABASE LINK于A上:
CREATE DATABASE LINK A_2_B
CONNECT TO 用户名 IDENTIFIED BY 密码
USING B实例名2、使用如下方法访问B的表
select * from table1@A_2_B
create database link linkname
connect to user
identified by usrpwd
using 'demona';其中
--demona为用net8 easy config创建的连接字符串
目的方数据库的init.ora文件中的global_names设为false
重新启动数据库设置才能生效
或者用sys用户执行
alter system set global_names=false;创建trigger的例子:
create or replace trigger trg_demo
before update on tbname for each row
begin
update tbname@linkname set col1=:new.col1,col2=:new.col2 ... where id=:new.id;
end trg_demo;
/
2.在每个表上建立TRIGGER,而且TRIGGER要捕捉INSESET,UPDATE,DELETE,而且针对着三个动作做相应的INSERT,UPDATE,DELETE。
请问您给的触发器例子中
create or replace trigger trg_demo
before update on tbname for each row
begin
update tbname@linkname set col1,col2=:new.col2 ... where id=:new.id;
end trg_demo;
/col1是不是代表B数据库的一个字段,:new.col1 是不是A数据库的表的相同字段?
name varchar2(20),
sex char(6),
address varchar2(100)
);
before update on linktest for each row
begin
update linktest@linkname set name=:new.name,sex=:new.sex,address=:new.address where name=:new.name;
end trg_demo;
/
before update on linktest for each row
begin
update linktest@OFFICECN_CMS set name=:new.name,sex=:new.sex,address=:new.address where name=:new.name;
end trg_demo;
/这个是DBLINK
create database link OFFICECN_CMS
connect to store
identified by store
using 'OFFICECN_2_CMS';