代码改变世界

【转】Oralce Database link

2010-04-09 16:01  flyingfish  阅读(453)  评论(0编辑  收藏  举报

原文地址:http://www.cnblogs.com/followingme/articles/1279080.html

Oralce Database link

今天下午需求的更改,要更改程序,

想了一下最后决定在不动程序

用一个简单的触发器搞定,由于2个数据库表不在同一个服务器上,就用到了DatabaseLinke

 

先把代码贴出来



-- Create database link 
create public database link LINKGH
  connect 
to 数据库登陆用户 identified by "登陆密码"
  using 
'本地服务名';
  
--创建触发器
create or replace trigger trgYCZG 
after 
update on  yczg
for each row
begin
  
update ghyczg@LINKGH set ycjcr=:NEW.YCJCR ,YCJCJG=:NEW.YCJCJG WHERE YCID=:OLD.YCID;
end trgYCZG;

 

 开始测试第一遍不成功,后来发现,服务器上没有注册我用的本地服务名,有远程连接到服务器注册了一个服务名就ok了

------

其实还有一种写法就是直接把服务名的具体内容copy出来如下【推荐】


-- Create database link 
create public database link LINKGH
  connect 
to 数据库登陆用户名 identified by "password"
  using 
'
(DESCRIPTION =
 (ADDRESS_LIST =
 (ADDRESS = (PROTOCOL = TCP)(HOST = 服务器ip)(PORT = 1521))
 )
 (CONNECT_DATA =
 (SERVICE_NAME = oracle数据库全局名)
 )
 )
';
  
--创建触发器
create or replace trigger trgYCZG 
after 
update on  yczg
for each row
begin
  
update ghyczg@LINKGH set ycjcr=:NEW.YCJCR ,YCJCJG=:NEW.YCJCJG WHERE YCID=:OLD.YCID;
end trgYCZG;

 

数据库全局名称可以用以下命令查出

SELECT * FROM GLOBAL_NAME;