要求:实现在本地数据库向远程数据库进程操作。
(注:本地数据库IP为10.56.7.26;远程数据库IP为233.215.219.8)
一、首先配置本地数据库的tnsnames.ora文件。具体操作如下
1.在10.56.7.26数据库安装文件中,找到$ORACLE_HOME/network/admin/tnsnames.ora文件,
末尾添加
MEDIADBLINK =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 233.215.219.8)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
2.登录到10.56.7.26数据库,创建database link,这里需要使用sysdba的角色登录,进行权限分配方可创建
执行如下sql语句:
create public database link MEDIADB;
connect to smsuser identified by zonefree2better;
using 'MEDIADBLINK';
创建完后使用,检查是否成功:
select owner,object_name from dba_objects where object_type='DATABASE LINK';
3.在10.56.7.26中创建触发器
触发器中插入远程数据表sql:
create or replace trigger t_t_test
after insert on t_sta_bill
for each row
DECLARE
-- local variables here
BEGIN
--操作远程数据表
INSERT INTO t_test@MEDIADB
(USERID,USERNAME,PASSWORD)
VALUES (:NEW.USERID,:NEW.USERNAME,:NEW.PASSWORD);
END t_t_test;
二、同机器上的不同用户数据库 一台机器上的不同用户,可以使用
SELECT ssh2.A.* FROM SSH2.A, orcl.A WHERE ssh2.A.USER_ID = orcl.A.USER_ID ssh2、orcl为用户,A为数据表
三、查看远程数据库中的表,即在表明后面加上dblink的名字即可完成.更新和删除操作类似
例如:select * from t_sta_bill@MEDIADB;