日期:2014-05-16  浏览次数:20717 次

oracle2个用户之间查询数据
例如在oracle中有2个用户sysdb、hellodb 在sysdb下面有表hello  在hellodb中有baby表
现在我想在oracle用户sysdb中使用hellodb用户的表baby的数据
那么怎么查询呢
select * from baby@link_hellodb

====================================

一般都会用imp exp 备份和导入数据库  但是有些时候 需要比较灵活的从两个数据库之间取数据 我这里用到的是oralc的dblink方式。



首先监听器tnsnames.ora这个文件能连接到远程要创建dblink的数据库。


-- 创建dblink   MANAGER为远程数据库的用户名 password 为远程数据库的密码, orcl为监听器连好的链接名称



Sql代码 
1.create database link DDD.REGRESS.RDBMS.DEV.US.ORACLE.COM  
2.  connect to MANAGER  identified by  password     
3.  using 'orcl'; 
create database link DDD.REGRESS.RDBMS.DEV.US.ORACLE.COM
  connect to MANAGER  identified by  password  
  using 'orcl'; 


这样就可以连接到 orcl数据库 灵活的取每一张表的数据了





--两个数据库都存在 tb_demo表  这是本表插入
--查询数据 sql和本地一样了  只是后面加个@DDD.REGRESS.RDBMS.DEV.US.ORACLE.COM  就等于是dblink连好的远程数据库了

Sql代码 
1.INSERT INTO tb_demo  
2.              SELECT * FROM tb_demo@DDD.REGRESS.RDBMS.DEV.US.ORACLE.COM  
3.              where iyear=2011  
4.              and imonth=8  and flag=0