SQLServer链接服务器至Oracle

1.         我方服务器必须安装msdtc服务,并进行相应配置。

2.         我方服务器必须安装oracle client,这个要对应中心站oracle版本的客户端。

3.         我方服务器必须安装Oracle Services For Microsoft Transaction Server [版本]

   Oracle Provider for OLE DB [版本]

这2个可以在Oracle官方网站下载

[http://www.oracle.com/technology/software/tech/windows/odpnet/index.html]

此文件为分布式事务必须的插件。

4.         Oracle给我们分配一个Oracle的用户名和密码,具有写入/读取表的权限。

5.         在我方系统的SQLServer服务器上建立链接服务器,指向Oracle数据库,链接服务器访问接口必须为[Oracle Provider for OLE DB](否则无法启动分布式事务)。

 

1.         在写存储过程向oracle数据库中 insert、delete、update的时候,一定要加上

SET XACT_ABORT ON

此为开启镶嵌事务标志,否则分布式事务会失败。

2.         对于从oracle或sqlserver中select数据的时候没有必要加入事务范围内,会锁表浪费时间。

3.         查询语句格式为:

SELECT * FROM openquery(ORA_DBENSIS, 'select ID from TEST_TRANS')

或者

SELECT * FROM ORA_DATABASE..TEST_USER.TEST_TRANS

用户名TEST_USER、表名TEST_TRANS必须大写

4.         插入语句格式为:

INSERT openquery(ORAENSIS, 'select ID from TEST_TRANS where 1=0') 

values (1)

在SQL SERVER中访问ORACLE表的方法在SQL SERVER中,能否访问ORACLE表,进行查询操作呢?答案无疑是可以的,下面就为你介绍在SQL SERVER中访问ORACLE表的实现方法,供您参考。

一、配置

方法一:通过oracle的sql*net客户端与Oracle数据库直接相连

1、在SQL SERVER所在服务器上安装Oracle客户端,并配置好客户端,能用sqlplus工具连通Oracle数据库2、打开ENTERPRISE MANAGER,安全性>链接服务器,右键选择“新建链接服务器”3、“链接服务器”->ORCL (为链接服务器取名字)选择“其它数据源”,在“提供程序名称” 栏中选择“Microsoft OLE DB Providerfor Oracle”4、在“产品名称”->“Oracle”  “数据源”->“ora9i”(此处填tnsnames.ora中的服务名)在“提供程序字符串”->“MADAORA”5、切换到“安全性”一页中,在”本地登录“中加入oracle数据库的用户名,选择“用此安全上下文进行”,填入oracle数据库登录的用户和密码6、切换到“服务器选项”一页中,将所有选项都选上7、最后点击“确定”完成设置8、在查询分析器中使用创建好的链接服务器ORCL

SELECT * FROM ORCL..SMS.EMP其中ORCL是链接服务器名,SMS是Oracle数据库的用户名,EMP是表名

方法二:通过ODBC与Oracle数据库相连

1、在SQL SERVER所在服务器上安装Oracle客户端,并配置好客户端,能用sqlplus工具连通Oracle数据库管理工具>数据源中创建一个系统DSN2、打开ENTERPRISE MANAGER,安全性>链接服务器,右键选择“新建链接服务器”3、“链接服务器”->ORCL (为链接服务器取名字)选择“其它数据源”,在“提供程序名称” 栏中选择“Microsoft OLE DB Providerfor ODBC”4、在“产品名称”->“Oracle”  “数据源”->“ora9i”(此处填创建的系统DSN名)在“提供程序字符串”->“MADAORA”5、切换到“安全性”一页中,在”本地登录“中加入oracle数据库的用户名,选择“用此安全上下文进行”,填入oracle数据库登录的用户和密码6、切换到“服务器选项”一页中,将所有选项都选上7、最后点击“确定”完成设置8、在查询分析器中使用创建好的链接服务器ORCL SELECT * FROM ORCL..SMS.EMP 其中ORCL是链接服务器名,SMS是Oracle数据库的用户名,EMP是表名

二、关于查询中不能使用到索引的问题

在SQLSERVER中查询一个oracles上的表:SELECT * FROM ORCL..SMS.EMP WHERE NAME = 'TOM'EMP有几百万数据,并且在NAME上建了索引,发现查询非常慢,通过查询oracle上的视图v$sqlarea,发现WHERE条件根本没有传到oracle服务器上,后来通过几次测试后总算解决了该问题,总结如下:

当使用链接服务器访问ORACLE表,查询oracle的表时,where子句中字段如果是number类型,则该where条件不会传到oracle服务器;

如果是char类型,则可以传到oracle服务器上,但是必须在创建链接服务器时一定要把选项"与排序规则兼容"选上,否则也不会传到oracle服务器上的;

转载于:https://www.cnblogs.com/tanbin1766/p/3147997.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/400508.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【51单片机快速入门指南】3.1:配置外部中断触发方式和中断优先级

目录源码EXTI.cEXTI.hmain.c实验现象普中51-单核-A2 STC89C52 Keil uVision V5.29.0.0 PK51 Prof.Developers Kit Version:9.60.0.0 源码 stdint.h见【51单片机快速入门指南】1:基础知识和工程创建 中断知识见【51单片机快速入门指南】3:中断系统 将…

(转)工厂方法模式

转自:http://www.jellythink.com/archives/62 问题描述 之前讲到了C设计模式——简单工厂模式,由于简单工厂模式的局限性,比如:工厂现在能生产ProductA、ProductB和ProductC三种产品了,此时,需要增加生产Pr…

一种父线程阻塞等待子线程的有效方法

最近在做一个查询优化时,考虑到一次查询耗时较多,所以打算用多线程来做,之前是串行查询。比如一个用户查询触发50个线程,在只有一个用户的情况下,性能比串行查询确实提高了许多,但当多个用户同时触发查询的…

C语言利用循环队列实现滑动平均值滤波器,提高计算速度

目录源码Filter.cFilter.h使用效果普中51-单核-A2 STC89C52 Keil uVision V5.29.0.0 PK51 Prof.Developers Kit Version:9.60.0.0 串口示波器:Vofa 1.3.10 网上查到的滑动平均值滤波器在计算平均值的时候还要再for累加一遍,这太浪费时间了&#xff0c…

iOS 计算文字宽度的一个细节

设计师给到的图,经常是 “按钮的左边距离文字右边5px” 这样子的标注。于是我们需要计算文字的宽度。 有两种方法: 用 label 或 button 的 sizetofit 方法 [label sizeToFit]; NSLog("label size is %",[NSValue valueWithCGSize:label.boun…

Exchange Server 2013日记功能

9.6 日记9.6.1 日记功能为什么很重要首先,了解日记功能与存档功能之间的区别十分重要:首先,了解日记功能与存档功能之间的区别十分重要: “日记”可以记录组织中的所有通信(包括电子邮件通信),以…

VB数据库经典实例总结(二)

大家先看一张似图非图的图、 我们先称它为“过程”也许有不对的地方,在我学数据库到这个阶段、到这个刚刚接触、初生牛犊不怕虎的阶段对它的理解是这样的、所有的都是这个过程、只是在这中间掺杂了一些知识点(我们要掌握的)针对有些个别的&am…

适用于单片机的FFT快速傅里叶变换算法,51单片机都能用

目录源码FFT.cFFT.h使用方法效果其他部分的代码main.c普中51-单核-A2 STC89C52 Keil uVision V5.29.0.0 PK51 Prof.Developers Kit Version:9.60.0.0 算法来自FFT算法的使用说明与C语言版实现源码 —— 原作者:吉帅虎 速度更快的版本见C语言实现的FFT与IFFT源代码…

第9课 - 函数重载分析(下)

第9课 - 函数重载分析(下) 1. 重载与指针 1.1 下面的函数指针将保存哪个函数的地址? 1.2 函数重载遇上函数指针 将重载函数名赋值给函数指针时: (1)根据重载规则挑选与函数指针参数列表一致的候选者 &#…

常见窗函数的C语言实现及其形状,适用于单片机、DSP作FFT运算

目录源码WindowFunction.cWindowFunction.h使用形状三角窗巴特利特窗巴特利特-汉宁窗布莱克曼窗布莱克曼-哈里斯窗博曼窗切比雪夫窗平顶窗高斯窗海明窗汉宁窗纳托尔窗Parzen窗矩形窗(模拟)效果无窗汉宁窗平顶窗平台:Windows 10 20H2 Visual …

cs

cs.yuneasy.cn 7989root yuneas123killall -9 caps cd capserver ./caps -cx转载于:https://www.cnblogs.com/bevis/p/3152633.html

.net Json JavaScriptSerializer JsonHelper类

结合.net 的JavaScriptSerializer 类实现Json数据处理 调用1: Model.Users m BLL.UsersBLL.GetUserById(Convert.ToInt32(id));string result "";if (m ! null)result JsonHelper.ObjectToJSON(m);context.Response.Write(result); 调用2&#xff…

C语言实现的FFT与IFFT源代码,不依赖特定平台

目录源码FFT.cFFT.h使用方法初始化输入数据FFT 快速傅里叶变换解算FFT结果使用python绘制FFT波形IFFT 快速傅里叶逆变换解算IFFT结果Windows 10 20H2 Visual Studio 2015 Python 3.8.12 (default, Oct 12 2021, 03:01:40) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on …

产品经理能力产品经理工作积累(3)

每日一贴,今天的内容关键字为产品经理能力 按职业司理的层次模型产品司理又可分工匠型,元帅型和老师型. (1). 工匠型 工匠型产品司理主要的代价在于:在某个专业领域里其技能的娴熟水平. (2). 元帅型 元帅型产品司理,可以在一个领域中带领一帮人来完成一个特定的项目.他的能力体…

垂直和水平居中方法小结

水平居中 行内元素 text-align:center; 块元素 1.定宽块元素水平居中 margin:0 auto; 2.不定宽块元素水平居中 方法一&#xff1a;利用浮动的包裹性和百分比相对定位 <div classouter><div classinner></div> </div> 我们想要使inner(不定宽)水平居中于…

MySQL命令行导出数据库

MySQL命令行导出数据库&#xff1a; 1&#xff0c;进入MySQL目录下的bin文件夹&#xff1a;cd MySQL中到bin文件夹的目录 如我输入的命令行&#xff1a;cd C:\Program Files\MySQL\MySQL Server 4.1\bin (或者直接将windows的环境变量path中添加该目录) 2&#xff0c;导出数据库…

在51单片机上使用递归的注意事项

目录问题应对措施原理普中51-单核-A2 STC89C52 Keil uVision V5.29.0.0 PK51 Prof.Developers Kit Version:9.60.0.0 问题 在Keil C51中直接使用递归会报如下警告&#xff1a; recursive call to non-reentrant function 为了提高运行效率&#xff0c;C51采用静态分配局部变量…

ASP.Net 获取服务器信息

1: Response.Write("服务器机器名&#xff1a;" Server.MachineName); 2: Response.Write("<br/>");3: Response.Write("服务器IP地址&#xff1a;" Request.ServerVariables["LOCAL_ADDR"]);4: Response.Write("<br/…

POJ 2456 - Aggressive cows(二分)

Description Farmer John has built a new long barn, with N (2 < N < 100,000) stalls. The stalls are located along a straight line at positions x1,…,xN (0 < xi < 1,000,000,000). His C (2 < C < N) cows don’t like this barn layout and becom…

〖Android〗存在多个Android设备时,使用Shell脚本选择一个Android设备

Shell脚本&#xff1a; #!/bin/bash devices( $(adb devices|grep device$|awk {print $1}|xargs echo) )case ${#devices[]} in0 )echo "cant found a android device!";;1 )serial$devices;;* )select serial in ${devices[]}; dobreak;done;; esacif [[ -z $seria…