数据库链接DB_LINK

通过数据库链接,可以访问另外一个数据库中的表。

select * from table_name@db_link;

数据库链接通常分为公有的和私有的:

1.Private数据库链接,只能由创建的用户使用,创建用户需要被授予CREATE DATABASE LINK的系统权限,创建语句为:

CREATE DATABASE LINK DB_LINK_NAME USING 'NET_SERVICE_NAME';

其中NET_SERVICE_NAME是通过在TNSNAME.ORA中配置的网络服务名。

2.Public数据库链接,创建公有数据库链接需要有CREATE PUBLIC DATABASE LINK权限,删除需要有DROP PUBLIC DATABASE LINK系统权限,public数据库链接可以被当前数据看所有用户使用,创建的语句:

CREATE PUBLIC DATABASE LINK DB_LINK_NAME USING 'NET_SERVICE_NAME';

数据库用户的映射:

本地用户通过使用数据库链接连接到远程数据库,在远程数据库中将以那个数据库用户来发送请求。

1.上面的两个创建数据库链接的例子中都是映射为同名用户,本地数据库当前用户映射为远程数据库同名用户来执行命令;

2.使用如下语句指定一个固定的远程数据库用户,在远程数据库执行命令:

CREATE (PUBLIC) DATABASE LINK DB_LINK_NAME CONNECT TO SCOTT IDENTIFIED BY PASSWORD USING 'NET_SERVICE_NAME';

另外,在本地创建数据库链接时,并不会去验证远程数据库是否有同名用户或是指定的用户,以及密码是否正确,即使有错误,数据库链接也能创建成功,只是以后使用的过程用会报错。

相关数据字典:DBA_DB_LINKS,ALL_DB_LINKS以及USER_DB_LINKS

通常应用:

1.把表1的数据拷贝到表2:

INSERT INTO 表2(列1,列2...)

SELECT 列1,列2... FROM 表2@DB_LINK WHERE 字句;

2.表2不在数据库中:

CREATE TABLE 表2(列1,列2...)

SELECT 列1,列2... FROM 表2@DB_LINK WHERE 字句;




  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值