1、建立DBLink
A庫想查B庫的東西。可以在A庫上建一個DBLINK,單向,不需要在B上建,除非B也想查A的東西.
CREATE [SHARED] [PUBLIC] database link link_name
[CONNECT TO [user] [current_user] IDENTIFIED BY password]
[AUTHENTICATED BY user IDENTIFIED BY password]
[USING 'connect_string']
實例:
在A庫上建一個DBLINK
create public database link lcDblink connect to phdev_jzk_20191125 identified by crux using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 10.10.xxx.xxx)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = ufgovdb1)))';
2、建立觸發器Trigger
2.1 A庫中創建一個測試表:
create table lctestTrigger_user(
id number(11) primary key,
username varchar(50),
password varchar(50)
);
2.2 A庫中創建觸發器:
靚點:觸發器中執行dblink 往B庫中的lctestTrigger_user_phdev表中插入對應數據。
CREATE OR REPLACE TRIGGER MY_Trigger
after INSERT ON lctestTrigger_user
FOR EACH ROW--對錶的每一行觸發器執行一次
DECLARE
NEXT_ID NUMBER;
BEGIN
--:old代表舊值 ---:new 代表新值
insert into lctestTrigger_user_phdev@lcDblink(username,password) values(:NEW.username, :NEW.password);
END;
2.3 向A庫的表lctestTrigger_user中插入數據:
insert into lctestTrigger_user(id,username,password) values(1,'admin','admin');
insert into lctestTrigger_user(id,username,password) values(2,'fgz','fgz');
insert into lctestTrigger_user(id,username,password) values(3,'test','test');
2.4 B庫中創建一個測試表lctestTrigger_user_phdev:
create table lctestTrigger_user_phdev(
username varchar(50),
password varchar(50)
);
2.5 在A庫的表lctestTrigger_user 查詢插入的數據:
SELECT * FROM lctestTrigger_user
2.6 在B庫中查詢lctestTrigger_user_phdev表數據。根據A庫中的 MY_Trigger 觸發器 和觸發器中的DBLink 向B庫中的表後臺插入數據。
SELECT * FROM lctestTrigger_user_phdev