Oracle 中有一数据库 dBOracle 数据库表 tableOracle(time,data)
别的数据库(非Oracle数据库) dBOther 数据库表 tableOther(time,data)现有以下问题:
tableOracle 中 有数据变化
tableother 中 立即跟着变请问有什么好的方法实现上面的功能。
谢谢!
别的数据库(非Oracle数据库) dBOther 数据库表 tableOther(time,data)现有以下问题:
tableOracle 中 有数据变化
tableother 中 立即跟着变请问有什么好的方法实现上面的功能。
谢谢!
触发器+dblink 肯定能够解决问题
具体的Trigger 和存储过程 还有dblink怎么用
谢谢了
对tableOracle 表建行触发器,在触发器里面通过dblink的方式同步tableother表的数据。
DBLINKDBlink创建两中不同方式
方法一:
1:现在你的oracle数据库服务器上, $oracle_home/network/admin/tnsnames.ora文件中,把你所要登入的远程数据库的串配置好
2:在本地客户端pl/sql中,用语句
create database link 自己取明
connect to 用户名 identified by 密码
using '配置在tnsname.ora中的名字';方法二:
直接在客户端用语句配置:
create database link 自己取明
connect to 用户名 identified by 密码
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = *.*.*.*具体IP具体配置)(PORT = 1521一般为这个端口))
)
(CONNECT_DATA =
(SID = ***)
(SERVICE_NAME = ***)
)
)';我曾经用方法一进行创建DBlink发现,可以tnsping通,但是用sqlplus 用户名/密码@链接串 发现会报错,
但是我用方法二时,链接的串还是一样的,就可以了,所以才有此疑问
方法一和方法二之间到底有什么区别??
CREATE OR REPLACE TRIGGER TRG_AIU_CHDH AFTER INSERT OR UPDATE ON ADD114.CHDH
FOR EACH ROW
BEGIN
INSERT INTO TRS_GY$_TEMP
SELECT
GY$SEQ.NEXTVAL,
a.XH,
3,
0
FROM CH a
WHERE a.CBZ=:NEW.CBZ; INSERT INTO TRS_GY$_TEMP
SELECT
GY$SEQ.NEXTVAL,
a.XH,
1,
0
FROM CH a
WHERE a.CBZ=:NEW.CBZ;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
这几个知识点,网上都有很多介绍的,而且都有好多的sample