ORACLE 使用DBLINK访问远程数据库

 当用户要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库的dblink。通过dblink,本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。
首先,查看Global_name参数是true还是False。该参数为true时,你在本地建立的DBLINK的名称必须和远程数据库的全局数据库名的Global_name一致才行。

global_name可以在远程数据库上得到:

修改GLOBAL_NAME的方法:
方法一、在数据库的init.ora文件中将global_names设为true/false。
方法二、语句:ALTER SYSTEM SET GLOBAL_NAME=TRUE/FALSE;
修改后重新启动数据库设置才能生效。

其次,创建dblink之前用户必须有创建dblink的权限( 注意此处赋予的public database link的权限):


第三、在本地数据库tnsnames.ora文件中配置了要远程访问的数据库,配置完即可创建dblink:

也可以直接创建数据库链接时写入配置数据库:

 –这个service_name是您要链接到的数据库服务端的服务名
其中HNBB 是你创建的dblink名字,是数据库连接串的名字。以后就通过这个名字来进行调用远程数据库的内容;
jjaj/jjaj是登录到远程数据库的用户/密码;
hnbb235为该Oracle数据库所在的主机上的tnsnames.ora文件里边定义的数据库连接串。
在本地数据库中通过dblink访问远程数据库'hnbb235'中jjaj.AJCFGDQK2012BAK表。

对于另外一种情况,所要访问的表不在数据库链接中指定的远程帐户下,但该帐户有访问该表的权限,那么我们在表名前要加上该表的用户名:

对于经常使用的数据库链接,可以建立一个本地的同义词,方便使用:


最后、查看所有的数据库链接,进入系统管理员账号下,运行命令:

删除数据库连接:

关闭dblink连接,关闭前一定要注意session的回收,在应用程序中使用
commit;
alter session close database link hnbb;

任何ddl语句都无法在dblink中直接执行。但通过创建存储过程,使得能在dblink中执行ddl语句。 注意需在目标数据库的相应用户下创建存储过程 ,具体如下:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值