- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
如何通过linkedserver对远程Oracle进行数据操作?1.?OpenqueryOpenquery是使用linked server中非常推荐使用的函数。通常情况下,如果我们用四段式的名称访问远程的oracle table,比如:Select * from linkedserver.oracledb.user.table where id=n由于SQL Server没有办法获得Oracle端的统计信息,即使在ID字段上有index,以上的语句还是没有办法使用oracle端的index,默认的行为就是把所有的数据传送给SQL Server然后在SQL Server端做过滤.? ?如果我们使用OpenQuery进行insert、update和delete操作,我们可以手工的决定哪个部分的语句直接传递给oracle执行。具体用法举例为:?DELETE from OPENQUERY (oracle92,SELECT * FROM TEST WHERE ID = 1) INSERT OPENQUERY (ORACLE92,SELECT * FROM TEST) VALUES (2, CC) UPDATE OPENQUERY(ORACLE92,SELECT * FROM TEST WHERE ID = 1) SET NAME =CCC?同时,Openquery可以跳过元数据的类型校验,因此是linked server语句的访问性能提高。有时在相互兼容性不够好的两种数据库之间,比如SQL Server 和DB2之间,直接用四段式的方式访问是没有办法通过元数据校验并且返回结果集的,但是当我们改用openquery函数的时候,就可以成功的访问远程数据了。?如何通过linked server 调用远程oracle的存储过程。Linked server是不支持直接调用非SQL Server的远程数据库的带参数的存储过程的。下面列出了三种方法,这里只有方法2在32位及64位的SQL Server都可用:?*** 方法1***?可以使用msdaora调用一个没有参数的Oracle存储过程。使用oraOLEDB.oracle,会引发错误7357,这意味着在64位oraOLEDB.oracle接口上会执行失败。(64bit上没有msdaora)错误信息:Msg 7357, Level 16, State 2, Line 1Cannot process the object {CALL SCOTT.USP_WCARROLL_PROC({resultset 25, OUTPUT})}.The OLE DB provider OraOLEDB.Oracle for linked server ORACLE92 indicates that either the object has no columns or the current user does not have permissions on that object./*创建Oracle对象的SQL Plus代码*/create or replace procedure SCOTT.USP_WCARROLL_PROC(OUTPUT OUT dbms_output.chararr)isbeginOUTPUT(1):=One;OUTPUT(2):=Two;OUTPUT(3):=Three;end;/?select * from openquery(ORACLE92, {CALL SCOTT.USP_WCARROLL_PROC({resultset 25, OUTPUT})});?*** 方法2 ***向Oracle表中插入记录,且该操作触发一个会调用存储过程的触发器可以在Oracle中创建一个表,并在上面放置一个由insert操作触发的触发器;在触发器中,会调用Oracle存储过程。如果你的Oracle技术比我好,你的触发器应当能够得到被插入的记录数据并把它们传递到Oracle存储过程作为参数。为了返回数据,可以利用存储过程更新Oracle表中的记录,然后重新查询记录,以此从SQL Server中得到返回参数。这种方法在msdaora和oraOLEDB.oracle上都适用。所以这个方法将适用于Oracle 64位的OLEDB接口。?/* 创建Oracle对象的SQL Plus代码 */create table SCOTT.TBL_WCARROLL(idint,mydate varchar2(100));/?create table SCOTT.TBL_WCARROLL_CALLPROC(idint,param1int,param1 varchar2(100));/?create or replace
您可能关注的文档
- 实验14 指针(3).doc
- CString工作原理.docx
- 【医学英语】中医术语3.docx
- 日语50基础音节.docx
- errpt 查看错误日志.docx
- 经营指标核算方法.docx
- 2013年完美世界校园招聘笔试题.docx
- 关于10人龙母攻略几个关键点.docx
- LED照明 灯具 英语 单词.docx
- 单片机C语言笔记.docx
- 物联网云平台应用开发 课件 项目4-3、通过Python实现HTTP协议.pptx
- 单片机应用技术教程(基于Keil与Proteus)(微课版)实训项目17 交通信号灯.docx
- 物联网云平台应用开发 课件 项目2-3、认识Python.pptx
- 物联网云平台应用开发 课件 项目5-5、M5311模块硬件平台搭建.pptx
- 短视频拍摄与剪辑课件 项目三 准备商品短视频拍摄设备.pptx
- 物联网云平台应用开发 课件 项目3-1、认识物模型.pptx
- 《电力机车控制线路的调试与维护》 课件 主电路0.ppt
- 单片机应用技术教程(基于Keil与Proteus)(微课版)实训项目 LCD12864液晶显示.docx
- 药理学 课件 4-1-1镇静催眠药.pptx
- 《电力机车控制线路的调试与维护》 课件 主电路1,2.ppt
最近下载
- 一种固定床加氢催化剂的制备方法及其应用.pdf VIP
- 2025年福建省教师招聘考试小学语文历年真题 .pdf VIP
- (五个方面)2025年作风建设学习教育查摆问题清单+2025年作风建设学习教育专项整治查摆问题清单及整改措施.docx VIP
- 四个能力自查评估表.doc VIP
- JJG 74-2005_工业过程测量记录仪.pdf
- 物理简单机械和功复习苏科九年级上.pptx VIP
- 精品解析:2024年湖南省中考物理真题(原卷版).docx VIP
- 高考化学第一轮全程复习课件.pptx VIP
- 专题2.18 二次根式加减混合运算50题(专项练习)-2022-2023学年八年级数学上册基础知识专项讲练(北师大版).docx VIP
- 2025年20个需求分析的技巧.pdf VIP
文档评论(0)