oracle不一樣數據庫之間進行同步數據時,能夠用觸發器來實現,但須要數據庫A訪問數據庫B,那麼能夠經過建立數據鏈接來實現,代碼以下:
CREATE DATABASE LINK dblink_test
CONNECT TO hantest IDENTIFIED BY hantest
USING '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST=192.168.1.1)(PORT = 1521)))
(CONNECT_DATA = (SERVICE_NAME = orcl)
)
)';
其中hantest 爲B數據的用戶名和密碼
using的內容是B數據庫的鏈接字符串
建立成功後能夠經過下列語句測試是否鏈接成功
select loginno,loginpwd,name from t_user@dblink_test
在A數據庫與B數據庫各建立一個表
create table hanclasstest(
classid number(2) primary key,
classname varchar(10) not null
);
以後再A數據庫hanclasstest建立觸發器
CREATE OR REPLACE TRIGGER TEST_TRIGGER
AFTER DELETE OR INSERT OR UPDATE ON hanclasstest
for each row
BEGIN
IF INSERTING THEN
--INSERT觸發
insert into hanclasstest@dblink_test values(:new.classid,:new.classname);
DBMS_OUTPUT.PUT_LINE('記錄已經成功插入,並已記錄到日誌');
ELSIF UPDATING THEN
--UPDATE觸發
DBMS_OUTPUT.PUT_LINE('記錄已經成功更新,並已記錄到日誌');
ELSIF DELETING THEN
--DELETE觸發
DBMS_OUTPUT.PUT_LINE('記錄已經成功刪除,並已記錄到日誌');
END IF;
END;
在A數據庫中的表hanclasstest 插入一條數據
insert into hanclasstest values('1','一班');
在A數據庫查詢B數據庫中hanclasstest 的數據
select * from hanclasstest@dblink_test