在软件开发的过程中,发现Web应用程序可能要对两个不同的数据库同时进行访问,可以使用同义词来实现.但必须要先建立一个数据库链接. 当然引用数据库链接,也可以达到与使用同义词同样的效果.
databaseA 数据库A实例名
databaseB 数据库B实例名
A_USR_ID 数据库A的用户
A_USR_PWD 用户A_USR_ID的密码
B_USR_ID 数据库B的用户
B_USR_PWD 用户B_USR_ID的密码
通过数据库链接,可以实现在B_USR_ID模式下访问A_USR_ID模式下的表,视图等.
连接databaseB
Connect B_USR_ID/ B_USR_PWD @databaseB_192.168.0.48;
建立数据库链接
create database link db_link_databaseA
connect to A_USR_ID identified by A_USR_PWD
using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.48)(PORT = 1521)))(CONNECT_DATA =(SID = databaseA)(SERVER = DEDICATED)))';
删除数据库链接
drop database link db_link_databaseA;
查看所有的数据库链接
select * from dba_objects where object_type='DATABASE LINK';
直接引用数据库链接
select * from A_TABLE@ db_link_databaseA;