本文实现功能数据库实例a,b,a中a1表,b中b1表
在a实例中创建dblink连接到b实例,在a中插入,更新,删除a1数据时,对b1的数据进行插入更新删除。
括号里边的中文要删掉
- 创建dblink
不需要全局dblink,代码连接用的用户私有即可
create database link 连接名称 connect to 远程数据库用户名 identified by “远程数据库密码” USING ‘127.0.0.1(地址):1521(端口)/ORCL(实例名)’;
删除dblink
drop database link 连接名称;
2.创建触发器
CREATE
OR REPLACE TRIGGER synchronization_user(触发器名字) BEFORE INSERT
OR UPDATE
OR DELETE ON MYUSER(a1表) FOR EACH ROW
BEGIN
CASE
WHEN inserting THEN
INSERT INTO xxx(远程数据库用户名).SYS_USER(b1表)@xxx(连接名称) ( ID, USERNAME, PASSWORD, IS_VALID, IS_AUDIT, DEPARTMENT )
VALUES
( LOWER(sys_guid()),:NEW.USERCODE,:NEW.USERCODE, ‘1’, ‘1’,:NEW.USERCODE );
WHEN updating THEN
UPDATE xxx(远程数据库用户名).SYS_USER(b1表)@xxx(连接名称)
SET USERNAME =:NEW.USERCODE,
PASSWORD =:NEW.USERCODE,
DEPARTMENT =:NEW.USERCODE
WHERE
USERNAME =:OLD.USERCODE;
WHEN deleting THEN
DELETE xxx(远程数据库用户名).SYS_USER(b1表)@xxx(连接名称)
WHERE
USERNAME =:OLD.USERCODE;
END CASE;
END;
删除触发器
DROP TRIGGER SYNCHRONIZATION_USER;