oracle dblink

简介:

oracle dblink 是干嘛的:比如现在有俩个数据库,都是单独的,如果我们现在登陆当前数据库,想访问另一个数据库,

如果我们建了DBLINK我们就可以直接在当前数据库取访问另一个数据库。 如select * from user@xe 这样我们就可以直接访问另一个数据库的user表

感谢oracle群cryking的qq远程指导。

测试环境是windows xp +oracle 11g,本机两个oracle实例ncbeta 和sen

C:\Documents and Settings\dell>services.msc --sql下可以host services.msc

SYS@sen>create database link ncbeta11 connect to scott identified by tiger using 'NCBETA';

数据库链接已创建。

格式:

create public database link link_name connectto user identified by password using 'SID';

 

  则(在实例sen)创建了一个连接到10.130.38.19 ccpbs上(ncbeta)以ecbm_userName 用户的连接

查询数据时带上@ecbm_19 就ok了 如select * from emp@ecbm_19;

删除 DROP PUBLIC DATABASE LINK ecbm_19;

 

查询globalname

SYS@sen>select * from global_name;

GLOBAL_NAME
--------------------------------------------------------------------------------
SEN

 

这个时候监听要正常--我这里netca重新配置了一下才行

SYS@sen>conn scott/tiger@ncbeta
ERROR:
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务

 

就可以使用dblink在sen下查询ncbeta的数据

SYS@sen>select * from emp@ncbeta11;

3.11号更新:感谢QQ好友涅的远程

从宿舍带来了自己的笔记本,做一个远程的dblink,笔记本和办公室的台式机都是通过网线连接到同一个tplink路由器上(刚开始笔记本通过路由器的无线连接做的监听不行).

这里笔记本的oracle作为远程数据库服务器(sid是jsce),办公室台式机作为本机来连接它(sid是ncbea)

笔记本通过了网线和无线都联网了,网线的ip是192.1681.116,无线的是192.168.1.115

E:\>ipconfig

Windows IP Configuration


Ethernet adapter 本地连接:

Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 192.168.1.116
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.1.1

Ethernet adapter 无线网络连接:

Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 192.168.1.115
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.1.1

之后修改listener和tnsnames文件(后来发现修改host为192.168.1.116无效,怎么也tsnping自己ping不通,重新netca建立)

建立之后的tnsnames如下:

JSCE =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = jsce)
)
)

listener如下

# listener.ora Network Configuration File: E:\app\xs\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = E:\app\xs\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:E:\app\xs\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
(SID_DESC =
(GLOBAL_DBNAME = localhost:jsce)
(SID_NAME = jsce)
)
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = E:\app\xs\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:E:\app\xs\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = jsce-1f0fab716a)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)

ADR_BASE_LISTENER = E:\app\xs

测试可以tsnping自己通过

E:\>tnsping 192.168.1.115

在台式机本机上创建dblink:

SYS@ncbeta>CREATE PUBLIC DATABASE LINK db1
  2    CONNECT TO ncv5 IDENTIFIED BY nc502
  3    USING '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.1.115)(PORT =
 1521)))(CONNECT_DATA =(SERVICE_NAME = jsce)))'
  4  /

这里的connect to 用户和密码ncv5 nc502是远程机jsce下的(这里host写成了192.168.1.115,116应该也行)

确定能够tnsping通远程机

C:\Documents and Settings\dell>tnsping 192.168.1.115

TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 11-3月 -2013 16:45:12

Copyright (c) 1997, 2010, Oracle. All rights reserved.

已使用的参数文件:
C:\app\dell\product\11.2.0\dbhome_1\network\admin\sqlnet.ora

已使用 HOSTNAME 适配器来解析别名
尝试连接 (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.115)(PORT
=1521)))
OK (50 毫秒)

tips:如果ping不同,会有如下报错:


之后就可以使用dblink,在本机查询远程机的数据库

比如,我特意修改了远程机上一个工程项目名称为‘夏森...’

SYS@ncbeta>select jobname from bd_jobbasfil@db1 where jobname like '夏森%';

JOBNAME
--------------------------------------------------------------------------------
夏森的dblink

update的操作,基本解决真东方之子的问题:

在台式机上面通过dblink关联远程oracle作为条件来更新:

SYS@ncbeta>update ncv5.bd_jobbasfil set jobname=(select jobname from bd_jobbasfil@db1 where jobname
like '夏森%') where pk_jobbasfil=(select pk_jobbasfil from bd_jobbasfil@db1 where jobname like '夏森
%');

已更新 1 行。

SYS@ncbeta>commit;

提交完成。

查询

通过 all_db_links数据字典来查询;

18:20:58 更新

cryking的merge用法,解决上面sql复杂:

merge into ncv5.bd_jobbasfil s
using (select pk_jobbasfil, jobname
         from bd_jobbasfil@db1
        where jobname like '夏森%') t
on s.pk_jobbasfil = t.pk_jobbasfil
when matched then
  update set s.jobname = t.jobname

不过提示缺少on关键字

加上括号就行了

merge into ncv5.bd_jobbasfil s
using (select pk_jobbasfil, jobname
         from bd_jobbasfil@db1
        where jobname like '夏森%') t
on  (s.pk_jobbasfil= t.pk_jobbasfil)
when matched then
  update set  s.jobname = t.jobname

这个强,第一次使用merge














本文转自东方之子736651CTO博客,原文链接: http://blog.51cto.com/ecloud/1194395,如需转载请自行联系原作者





相关文章
|
人工智能 算法 前端开发
阿里通义灵码的最佳实践
上周首次尝试了阿里巴巴的通义灵码AI插件,体验良好。该插件体积适中,约5.8M,适合项目开发使用。其@workspace和@terminal功能强大,能快速帮助开发者熟悉新项目结构,提供智能代码导航、搜索、优化及错误提示等服务,显著提升开发效率与代码质量。实践证明,通义灵码在加速项目理解和新需求实现方面表现出色,是开发者的得力助手。
584 1
阿里通义灵码的最佳实践
|
人工智能 前端开发 JavaScript
AI+脚本让我的效率翻倍,你也可以试试
本文分享了一名高级软件工程师如何利用 AI 工具(如 VSCode 插件 Codeium、通义灵码,及网页端的通义千问和 GPT-4)提升工作效率的经验。从代码生成、单元测试、脚本生成到文本润色,再到新框架学习,AI 工具在多个方面显著提高了开发效率和代码质量。文章还提供了具体示例和注意事项,帮助读者更好地应用这些工具。
545 1
|
传感器 边缘计算 监控
探索未来网络:物联网技术的革新与挑战
在21世纪的科技浪潮中,物联网(IoT)正迅速成为连接实体世界与数字世界的关键桥梁。本文旨在深入探讨物联网技术的最新进展、面临的主要挑战以及未来的发展趋势。通过分析当前物联网的核心技术,如传感器技术、低功耗广域网(LPWAN)、边缘计算等,本文揭示了这些技术创新如何推动智能城市、智能家居、工业4.0等领域的快速发展。同时,针对数据安全、隐私保护、标准化等关键问题,提出了相应的解决策略和建议。本文最后展望了物联网技术在未来可能带来的社会变革和商业模式创新,强调了跨学科合作的重要性,以实现物联网技术的可持续发展。
|
存储 算法 对象存储
网盘与相册服务PDS体验分享
网盘与相册服务PDS体验分享
377 1
|
存储 算法 Java
24-一步一图带你理清G1垃圾回收流程
G1的垃圾回收流程主要是从新生代回收开始,新生代回收与并发标记再到混合回收,接下来我们就先来说第一个新生代回收。
913 0
|
搜索推荐 安全 大数据
大数据在医疗领域的应用与前景
【6月更文挑战第26天】大数据在医疗领域提升服务效率,助力疾病预防与精准治疗。电子病历优化数据管理,疾病预测预防个性化医疗成为可能。未来,智能医疗系统普及,远程医疗兴起,数据共享促进行业发展,同时隐私保护与安全备受关注。大数据正重塑医疗,开启健康新篇章。
|
JSON 搜索推荐 定位技术
地图主题编辑器使用教程
地图主题编辑器使用教程
399 0
|
缓存 安全 数据安全/隐私保护
带你六分钟了解CleanMyMac X详细功能讲解
电脑明明有100G,但是只剩下几个G,明明已经清理了很多,但是还是没有释放出内存,怎么办?可以试试CleanMyMac X,怎么使用呢?来看看吧!CleanMyMac X是一款颇受欢迎的专业清理软件,拥有十多项强大的功能,CleanMyMac X2023下载如下:http://t.csdn.cn/sa393
555 3
|
存储 缓存 算法
ptmalloc、tcmalloc与jemalloc对比分析(一)
ptmalloc、tcmalloc与jemalloc对比分析
744 0
|
机器学习/深度学习 人工智能 达摩院
Speaker Diarization 中的无监督聚类算法
Speaker Diarization 中的无监督聚类算法
824 0