原文地址:开发者导航 · 你想要的,我全都有!

DBLINK作用

当用户要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。

数据库中dblink有两种权限:

CREATE DATABASE LINK

所创建的dblink只能是创建者能使用,别的用户使用不了。

CREATE PUBLIC DATABASE LINK

public表示所创建的dblink所有用户都可以使用。

删除dblink:

DROP PUBLIC DATABASE LINK

使用时机

跨数据库或者跨用户使用时。

赋予权限

--查看当前用户是否有创建dblink权限
select * from user_sys_privs t where t.privilege like upper('%link%');
--赋予“创建DBLink”的权限(前提:使用管理员账号登录系统system/admin)
grant create public database link,drop public database link to scott;
--或直接赋予“DBA”角色
grant dba to scott;

创建DBLINK方式

如果在本地数据库tnsnames.ora文件中配置了要远程访问的数据库:

create public database link dblink_ins
connect to ins
identified by ayw_ins1
using 'ins';

如果在本地数据库tnsnames.ora文件中没有配置要访问的远程数据库:

create public database link dblink_ins
connect to ins
identified by ayw_ins1
using '(DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST =132.228.xxx.xxx)(PORT = 1521))
    (CONNECT_DATA =
      (SERVICE_NAME = ossmob)
   )
  )';

解释:

create database link 链的名称(我们可以自定义)

connect to  要连接的数据库的用户名

identified by 用户的登录密码

using 要使用的数据库名(tnsnames.ora中的配置项)

如何使用DBLINK?

select * from PHY_EQP_UNIT@ossbc_dev_sz; 

解释:

FROM后跟表名,@链名称

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐