前几天帮一个朋友弄ORACLE跨数据库的操作,共享下具体的操作流程:
一、不同IP的数据库(DBLINK)
本地数据库ip 10.56.7.26
远程数据库ip 233.215.219.8
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为数据表