oracle跨库查询的方法
在oracle本地数据库端执行赋权dbuser帐号
sql> grant create database link to dbuser;
1.配置本地数据库服务器的tnsnames.ora文件
$vi $oracle_home/network/admin/tnsnames.ora
添加如下行,其中dblink为连接名(可自定义),host和port为数据库侦听的ip及端口,service_name为数据库的sid,
mediadblink = (description = (address_list = (address = (protocol = tcp)(host = 10.0.0.1)(port = 1521)) ) (connect_data = (service_name = db) ) )
2.登录到本地数据库,创建database link
执行如下查询语句,其中mediadb为database link名(可自定义),mediadblink为先前在tnsnames.ora中定义的连接名,
dbuser为用户名,password为密码
-- create database link create database link mediadb connect to dbuser identified by password using 'mediadblink';
注意:这里不会验证用户名密码的正确性
3.使用链接的数据库
3.1 查询、删除和插入数据和操作本地的数据库是一样的,只不过表名需要写成“表名@database link名”,如
select * from table_name@mediadb ;
3.2 也可以为这个表创建一个同义词
create synonym aaa for table_name@mediadb ;
如下语句的效果和3.1中的一样
select * from aaa;
删除同义词的语句为
drop synonym aaa;
以下是其他网友的补充:
在oracle本地数据库端执行赋权dbuser帐号
sql> grant create database link to dbuser;
配置本地数据库服务器的tnsnames.ora文件
$ vi $oracle_home/network/admin/tnsnames.ora
增加需要远程连接服务器的连接配置,如:
orcl_remote = (description = (address = (protocol = tcp)(host = oradb )(port = 1521)) (connect_data = (server = dedicated) (service_name = orcl) ) )
登录到本地数据库,创建database link
执行如下查询语句,其中orcl_link为database link名(可自定义),orcl_remote为先前在tnsnames.ora中定义的连接名,
dbuser为用户名,password为密码
create database link orcl_link connect to dbuser identified by password using 'orcl_remote';
查询创建database link的2中方式:
1)、执行sql语句。
select * from user_db_links; --用户 db link
select * from dba_db_links; --dba db link
select * from v$dblink; --当前db link
2)、在pl/sql中,在左边浏览器中点击database links就可以看到数据库链路了。
使用链接的数据库
查询、删除和插入数据和操作本地的数据库是一样的,只不过表名需要写成“表名@database link名”,如
select * from table_name@orcl_link
其它:
删除database link(本例中是orcl_link)
sql> drop database link orcl_link;
上一篇: Oracle中Like与Instr模糊查询性能大比拼
下一篇: Oracle如何实现跨库查询