代替oracle dblink,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';
数据库链接已创建。
格式:
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相关推荐
- oracle基于dblink创建视图,【案例】Oracle dblink 数据库连接dblink insert操作数据类型发生改变...
天萃荷净 开发DBA反映Oracle数据库两库之间通过dblink相连.在使用DML语句insert插入数据时操作的数据类型发生了改变 1.Oracle insert列属性 [oracle@saas- ...
- Oracle 同义词、DBLINK、表空间的使用
Oracle 同义词 Oracle同义词创建及其作用 Oracle的同义词(synonyms)从字面上理解就是别名的意思,和试图的功能类似,就是一种映射关系.本文介绍如何创建同义词语句,删除同义词以及 ...
- Oracle数据库的dblink连接
Oracle数据库的dblink连接 最近在做Oracle数据库的dblink连接,在简单学习之后就直接使用命令创建了连接 create database link tieqian connect t ...
- oracle exp 无效dblink,【案例】Oracle dblink 数据库连接dblink insert插入数据时异常分析...
天萃荷净 开发DBA反映在测试数据表插入数据,Oracle dblink两库连接插入同步数据时数据量异常 一.诡异Oracle dblink起源 今天开发拿过来一条sql,说有诡异现象,sql如下 I ...
- oracle-12154 dblink,oracle连接DBLINK报错:ORA-12154: TNS:could not resolve service name的解决方法(转)...
文章出自:http://blog.csdn.net/xulei_19850322/article/details/8219023 注意:最好用命令的方式创建dblink . 配置DBLINK细节很重要 ...
- linux oracle dblink,Oracle dblink配置
一. dBlink 简述 dblink(Database Link)数据库链接顾名思义就是数据库的链接,就像电话线一样,是一个通道,当我们要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就 ...
- 【oracle】oracle经典sql,exception,database link纠错
[oracle]oracle经典sql,exception,database link纠错 1111-01 oracle经典sql,exception,database link纠错 1.给表tabl ...
- Linux下docker安装配置oracle,oracle创建用户并远程连接,实测可用!
最近在给同学弄毕业设计的数据库,因为oracle在个人电脑上极不稳定,所以他的电脑数据库崩溃了,这时候我就在docker上为他拉了一个oracle,解决了问题. docker的安装共有以下几步,实测没 ...
- dblink oracle mysql,Oracle dblink的使用
将多个不同地点的服务器的oracle数据库逻辑上看成一个数据库,也就是说在一个数据库中可以操作另一个远程的数据库中的对象. Oracle DBLINK 作用:将多个不同地点的服务器的oracle数据库 ...
- oracle自动化,Oracle 自动化备份脚本
备份脚本,基于linux,windows环境需要适当修改. 主脚本,会调用2,3步骤的rman.sql&status.sql $ more main.sh #set env ######### ...
最新文章
- R语言普通最小二乘回归分析
- eos和以太坊有什么关系_比特币、以太坊、柚子三者的关系
- linux 提交git,linux下git使用记录1 git 提交
- 在导出php,PHP导出通用方法
- Android 获取手机号及运营商信息
- 【UnityDragonBones】纸娃娃(一)替换身体部位图片
- 精确计算——BigDecimal的使用
- 计算机图形化编程命令,第三课图形化编程教学设计
- xshell 连接vbox 虚拟机
- 显示图片的html 页面,HTML基础——网站图片显示页面
- The Client hold the Interface
- doc文件文本结构提取
- 自定义控件解决android中TextView中英文换行问题
- 数据库系统原理(一)引言
- 研发计算机主板需要什么专业,一种计算机主板研发用固定装置的制作方法
- DAVSE VCC-H900 20倍高清会议摄像机
- 如何关闭linux防火墙
- 一文讲透,分布式系统的数据分片难题
- 基于gradle的dependency-management配置实现多模块springboot依赖库的版本管理
- 离开实验室时 实验室内的计算机主机,实验室安全知识题库.doc
热门文章
- Python基本输出函数print()用法小结
- Python实现带有阻塞和超时放弃功能的队列结构
- Python使用筛选法计算小于给定数字的所有素数
- golang 系统级服务器,golang 服务器监控
- 1 1 2 3 5 8 java_1 1 2 3 5 8 13 21 34规律:一个数据等于前两个数之和.用java做,输入一个数据n,计算斐波那契数列(Fibonacci)的第n个值....
- 关于流(文件)的输入,输出与调用(fprintf,fscanf)
- esp32 io速度_乐鑫科技发布 ESP32-S3 芯片,精准聚焦 AIoT 市场
- 简短介绍_简短的自我介绍
- mysql外键实例学生成绩_mysql 外键(foreign key)的详解和实例
- 宁波大学2020计算机技术复试线,宁波大学2020年硕士研究生复试分数线