Oracle DBLINK 简单使用

摘要:
当oracle跨数据库访问时,可以通过创建dblink来实现。今天,我们将简要介绍如何创建dblink并通过dblink完成插入、修改、删除等操作。首先,我们将了解以下环境:在tnsnames中,ORA中配置了两个数据库别名:orcl(用户名:wangyong password:1988)和orcl2(用户名:wangyong password:123456)。在orcl中创建数据库链接以访问orcl2。步骤1:授予权限

oracle在进行跨库访问时,可以通过创建dblink实现,今天就简单的介绍下如果创建dblink,以及通过dblink完成插入、修改、删除等操作

首先了解下环境:在tnsnames.ora中配置两个数据库别名:orcl(用户名:wangyong 密码:1988)、orcl2(用户名:wangyong 密码:123456),在orcl中 创建database link来访问orcl2

Oracle DBLINK 简单使用第1张

第一步:赋予权限

在创建database link之前,我们需要判断,登陆的用户是否具备创建database link 的权限,所以我们执行以下的语句(用wangyong用户登陆orcl):

-- 查看wangyong用户是否具备创建database link 权限
select * from user_sys_privs where privilege like upper('%DATABASE LINK%') AND USERNAME='WANGYONG';

如果查询有返回行,则表示具备创建database link权限,否则,则需要使用sys登陆orcl为WANGYONG用户赋予创建权限

-- 给wangyong用户授予创建dblink的权限
grant create public database link to wangyong;

此时,再执行上面查看是否具备权限的sql语句,会发现有返回行,表示,WANGYONG这个用户已经具备创建database link的权限

第二步;创建database link

我所了解到的创建方式有两种:1)通过pl/sql developer图形化创建、2)通过sqlplus中的sql语句创建,依次来看

1)pl/sql developer 图形化创建

Oracle DBLINK 简单使用第2张

填写完成后点击“Apply”按钮即可创建成功。

2)sql语句创建

-- 注意一点,如果密码是数字开头,用“”括起来
create public database link TESTLINK2 connect to WANGYONG identified by "123456" USING 'ORCL21'

这样,就完成了简单database简单的创建

第三步:操作

首先,我们需要在ORCL2库中新建一张表,并插入部分数据,如下图:

Oracle DBLINK 简单使用第3张

现在,我们通过database link 在orcl中访问这张属于orcl2库中WANGYONG的表COMPANY

Oracle DBLINK 简单使用第4张

从截图中可以看到,在ORCL中可以成功访问到ORCL2中用户WANGYONG的表

下面,利用同样的方式,进行插入,修改,删除操作,依次看截图,每一次操作后均执行查询语句,可对比执行效果:

1)插入

Oracle DBLINK 简单使用第5张

2)修改

Oracle DBLINK 简单使用第6张

3)删除

Oracle DBLINK 简单使用第7张

至此,简单的dblink操作就可以了,对于上面的链接字符串,还可以创建同义词代替,会稍微省点事

-- 创建同义词
create synonym TESTSYNONYM FOR company@TESTLINK1;

那么上面的查询、插入、修改、删除中可直接用WYSYNONYM代替company@TESTLINK1即可,例如查询语句可改成如下方式(插入,修改,删除类似):

-- 查询ORCL2中WANGYONG用户的表COMPANY
SELECT * FROM TESTSYNONYM order by id

Oracle DBLINK 简单使用第8张

数据库名称:

SZJS755=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 132.121.121.111)(PORT = 28098))
(ADDRESS = (PROTOCOL = TCP)(HOST = 132.121.121.108)(PORT = 28098))
(LOAD_BALANCE = no)
(FAILOVER = ON)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = odsdb)
(FAILOVER_MODE =
(TYPE = SELECT)
(METHOD = BASIC)
)
)
)

免责声明:文章转载自《Oracle DBLINK 简单使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【原】CSS实现背景透明,文字不透明,兼容所有浏览器《Python》网络编程之客户端/服务端框架、套接字(socket)初使用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

用java调用oracle存储过程总结(转)

//1、call+包名+存储过程名(传入、传出值用?) String str="{call SMSBUSINESS.deleteZhZMember(?,?,?)}"; //2、建立连接 Connection conn=null; conn=DriverManager.getConnection(); //3、使用java.sql.*类 C...

ORACLE 错误案例—ORA-27102: out of memory

SQL> startupORA-27102: out of memoryLinux-x86_64 Error: 28: No space left on deviceAdditional information: 2097152 [oracle@kingdee-test ~]$ cat /etc/redhat-release CentOS relea...

Oracle入门第六天(下)——高级子查询

一、概述   主要内容:    二、子查询介绍   1.简单子查询(WHERE子查询) SELECT last_name FROM employees WHERE salary > (SELECT salary FROM employees...

ORACLE 查看RMAN的备份信息总结

    关于Oracle数据库的RMAN备份,除了邮件外,是否能通过其它方式检查RMAN备份的成功与失败呢?其实我们可以通过下面SQL脚本来检查某个时间段备份失败的记录: SELECT * FROM V$RMAN_STATUS WHERE START_TIME >= TO_DATE(&START_TIME,'YYYY-MM-DD HH24...

Oracle 死锁的检测查询及处理

来源于: http://www.cnblogs.com/hoojo/archive/2012/08/31/2665583.html -- 死锁查询语句 SELECT bs.username "Blocking User", bs.username "DB User", ws.username "Waiting User", bs...

Navicat Premuim远程连接oracle 提示 cannot load oci dll,193的解决方法

转载:http://blog.51cto.com/xiao987334176/1640991 内网有一台windows server 2012,安装了Navicat 11.1.8 连接oracle的时候,提示 cannot load oci dll,193:D:Program Files (x86)PremiumSoftNavicat Premium***...