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';

数据库链接已创建。

格式:

createpublicdatabaselinklink_nameconnecttouseridentifiedbypassword using'SID';

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

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

删除 DROPPUBLICDATABASELINKecbm_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 DATABASELINK db12   CONNECT TO ncv5 IDENTIFIED BYnc5023   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 wherejobnamelike '夏森%') 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 intoncv5.bd_jobbasfil s

using (selectpk_jobbasfil, jobnamefrom bd_jobbasfil@db1

where jobname like '夏森%') ton s.pk_jobbasfil =t.pk_jobbasfilwhen matched then

update set s.jobname = t.jobname

不过提示缺少on关键字

加上括号就行了

merge intoncv5.bd_jobbasfil s

using (selectpk_jobbasfil, jobnamefrom bd_jobbasfil@db1

where jobname like '夏森%') ton (s.pk_jobbasfil=t.pk_jobbasfil)when matched then

update set s.jobname = t.jobname

这个强,第一次使用merge

代替oracle dblink,oracle dblink相关推荐

  1. oracle基于dblink创建视图,【案例】Oracle dblink 数据库连接dblink insert操作数据类型发生改变...

    天萃荷净 开发DBA反映Oracle数据库两库之间通过dblink相连.在使用DML语句insert插入数据时操作的数据类型发生了改变 1.Oracle insert列属性 [oracle@saas- ...

  2. Oracle 同义词、DBLINK、表空间的使用

    Oracle 同义词 Oracle同义词创建及其作用 Oracle的同义词(synonyms)从字面上理解就是别名的意思,和试图的功能类似,就是一种映射关系.本文介绍如何创建同义词语句,删除同义词以及 ...

  3. Oracle数据库的dblink连接

    Oracle数据库的dblink连接 最近在做Oracle数据库的dblink连接,在简单学习之后就直接使用命令创建了连接 create database link tieqian connect t ...

  4. oracle exp 无效dblink,【案例】Oracle dblink 数据库连接dblink insert插入数据时异常分析...

    天萃荷净 开发DBA反映在测试数据表插入数据,Oracle dblink两库连接插入同步数据时数据量异常 一.诡异Oracle dblink起源 今天开发拿过来一条sql,说有诡异现象,sql如下 I ...

  5. oracle-12154 dblink,oracle连接DBLINK报错:ORA-12154: TNS:could not resolve service name的解决方法(转)...

    文章出自:http://blog.csdn.net/xulei_19850322/article/details/8219023 注意:最好用命令的方式创建dblink . 配置DBLINK细节很重要 ...

  6. linux oracle dblink,Oracle dblink配置

    一. dBlink 简述 dblink(Database Link)数据库链接顾名思义就是数据库的链接,就像电话线一样,是一个通道,当我们要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就 ...

  7. 【oracle】oracle经典sql,exception,database link纠错

    [oracle]oracle经典sql,exception,database link纠错 1111-01 oracle经典sql,exception,database link纠错 1.给表tabl ...

  8. Linux下docker安装配置oracle,oracle创建用户并远程连接,实测可用!

    最近在给同学弄毕业设计的数据库,因为oracle在个人电脑上极不稳定,所以他的电脑数据库崩溃了,这时候我就在docker上为他拉了一个oracle,解决了问题. docker的安装共有以下几步,实测没 ...

  9. dblink oracle mysql,Oracle dblink的使用

    将多个不同地点的服务器的oracle数据库逻辑上看成一个数据库,也就是说在一个数据库中可以操作另一个远程的数据库中的对象. Oracle DBLINK 作用:将多个不同地点的服务器的oracle数据库 ...

  10. oracle自动化,Oracle 自动化备份脚本

    备份脚本,基于linux,windows环境需要适当修改. 主脚本,会调用2,3步骤的rman.sql&status.sql $ more main.sh #set env ######### ...

最新文章

  1. R语言普通最小二乘回归分析
  2. eos和以太坊有什么关系_比特币、以太坊、柚子三者的关系
  3. linux 提交git,linux下git使用记录1 git 提交
  4. 在导出php,PHP导出通用方法
  5. Android 获取手机号及运营商信息
  6. 【UnityDragonBones】纸娃娃(一)替换身体部位图片
  7. 精确计算——BigDecimal的使用
  8. 计算机图形化编程命令,第三课图形化编程教学设计
  9. xshell 连接vbox 虚拟机
  10. 显示图片的html 页面,HTML基础——网站图片显示页面
  11. The Client hold the Interface
  12. doc文件文本结构提取
  13. 自定义控件解决android中TextView中英文换行问题
  14. 数据库系统原理(一)引言
  15. 研发计算机主板需要什么专业,一种计算机主板研发用固定装置的制作方法
  16. DAVSE VCC-H900 20倍高清会议摄像机
  17. 如何关闭linux防火墙
  18. 一文讲透,分布式系统的数据分片难题
  19. 基于gradle的dependency-management配置实现多模块springboot依赖库的版本管理
  20. 离开实验室时 实验室内的计算机主机,实验室安全知识题库.doc

热门文章

  1. Python基本输出函数print()用法小结
  2. Python实现带有阻塞和超时放弃功能的队列结构
  3. Python使用筛选法计算小于给定数字的所有素数
  4. golang 系统级服务器,golang 服务器监控
  5. 1 1 2 3 5 8 java_1 1 2 3 5 8 13 21 34规律:一个数据等于前两个数之和.用java做,输入一个数据n,计算斐波那契数列(Fibonacci)的第n个值....
  6. 关于流(文件)的输入,输出与调用(fprintf,fscanf)
  7. esp32 io速度_乐鑫科技发布 ESP32-S3 芯片,精准聚焦 AIoT 市场
  8. 简短介绍_简短的自我介绍
  9. mysql外键实例学生成绩_mysql 外键(foreign key)的详解和实例
  10. 宁波大学2020计算机技术复试线,宁波大学2020年硕士研究生复试分数线