前几天因为工作需要进行跨数据库查询,当时是要比对一下生产库和源库的某张表数据一致性,自己摸索了半天,终于成功,好了,废话不多说,开始来说说我是怎么实现的
要进行跨数据查询,首先在一个数据库中某个用户下编写一个存储过程,在存储过程中使用DBLINK连接另一个数据库
实现方法步骤:
1:创建存储过程,在存储过程中先创建database link
create database link dblink(这个dblink只是个别名,可以随便起)
connect to 要连接的数据库用户名 identified by 登陆密码 using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST =要连接的数据库所在服务器的IP地址)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = 你要连接的数据库的SID) ) )'
2:以上已经创建完成存储过程,接下来就可以进行跨库查询了
select * from 目标库表@dblink (实现跨库查询,表名后面加上@dblink)
select * from dba_db_links (在当前数据库下查看所有的DBLINK的方法,也就是你创建存储过程的一些信息)
select * from dba_db_links (删除当前数据库下的一个指定的DBLINK的方法)
drop public database link dblink (创建的是public的dblink,用此方法删除)
drop database link dblink (创建private的dblink,用此方法删除)