【转】Oralce Database link
2010-04-09 16:01 flyingfish 阅读(454) 评论(0) 编辑 收藏 举报原文地址:http://www.cnblogs.com/followingme/articles/1279080.html
Oralce Database link
今天下午需求的更改,要更改程序,
想了一下最后决定在不动程序
用一个简单的触发器搞定,由于2个数据库表不在同一个服务器上,就用到了DatabaseLinke
先把代码贴出来
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
-- 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;