Oracle DBLink+Trigger

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章