Oracle创建DBlink

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

创建dblink一般有两种方式,不过在创建dblink之前用户必须有创建dblink的权限。想知道有关dblink的权限,以sys用户登录到本地数据库:

SELECT * FROM USER_SYS_PRIVS;

 SYS CREATE DATABASE LINK                    NO

 SYS DROP PUBLIC DATABASE LINK               NO

 SYS CREATE PUBLIC DATABASE LINK             NO

可以看出在数据库中dblink有三种权限:

CREATE DATABASE LINK        (所创建的dblink只能是创建者能使用,别的用户使用不了)

CREATE PUBLIC DATABASE LINK (public表示所创建的dblink所有用户都可以使用)

DROP PUBLIC DATABASE LINK

在sys用户下,把CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK权限授予给你的用户

GRANT CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK TO SCOTT;

创建DBlink的基本语法:

CREATE [SHARED][PUBLIC] DATABASE LINK LINK_NAME
       [CONNECT TO [USER][CURRENT_USER] IDENTIFIED BY PASSWORD]
       [AUTHENTICATED BY USER IDENTIFIED BY PASSWORD]
       [USING 'CONNECT_STRING']

然后以scott用户登录本地数据库

1.创建dblink的第一种方式,是在本地数据库tnsnames.ora文件中配置了要远程访问的数据库。

 CREATE PUBLIC DATABASE LINK TO_BYLW CONNECT TO SCOTT IDENTIFIED BY TIGER USING 'BYLW';

  其中to_bylw是你创建的dblink名字,bylw是远程数据库的连接字串名,scott/tiger是登录到远程数据库的用户/密码。然后在本地数据库中通过dblink访问远程数据库'bylw'中scott.tb_test表,sql语句如下所示:

   SELECT * FROM SCOTT.TB_TEST@TO_BYLW;

2.创建dblink的第二种方式,是在本地数据库tnsnames.ora文件中没有配置要访问的远程数据库,

 CREATE DATABASE LINK TO_TEST
 CONNECT TO SCOTT IDENTIFIED BY TIGER
 USING '(DESCRIPTION =
            (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
                            (HOST = 192.168.1.5)
                            (PORT = 1521))
            )
         (CONNECT_DATA =(SERVER = DEDICATED)
                        (SERVICE_NAME = BYLW))
          )';

  第二种是把第一种配置在tnsnames.ora文件中的信息,直接放在创建dblink语句后面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值