位置: 编程技术 - 正文

通过创建SQLServer 2005到 Oracle10g 的链接服务器实现异构数据库数据转换方案

编辑:rootadmin
1、新建链接服务器

在图1中选中“链接服务器”,右键选择“新建链接服务器”,如图2,配置相关参数。

2、配置相关参数

在“常规”选项中,填写“链接服务器名称”,访问接口选中

“ Microsoft OLE DB Provider for Oracle”项。其中产品名称、数据源、访问接口字符串请填写配置的Oracle客户端在本地配置的net服务名。如图3所示。

在“安全性”项中,选中使用此安全上下文建立连接,填写远程登录用户和密码,即登录远程Oracle服务器的用户和密码。如图4所示。

3、异构数据库访问语句格式

比如我们建立了链接服务器ORADBCONN,而Oracle中在HRSOFT用户下面建立了表WEBUSER,那么我们的SQL语句就是:

--清空Oracle表中的数据

DELETE FROM ORADBCONN..HRSOFT.WEBUSER

--将SQLServer中的数据写到Oracle中

INSERT into ORADBCONN.. HRSOFT. WEBUSER

SELECT * FROM WEBUSER

如果报告成功,那么我们的数据就已经写入到Oracle中了。

用SELECT *  FROM ORADBCONN..HRSOFT.WEBUSER

查看Oracle数据库中是否已经有数据了。

4、链接服务器应用

A、查询Oracle数据表方式一(这种方式,当Oracle与SQLServer的数据类型不一致时经常报错,且速度稍慢):

select * from [LINK2ORACLE]..[ORACLE_USER_NAME].TABLE_NAME;

  我在执行该语句经常报类似错误信息:链接服务器 "LINK2ORACLE" 的 OLE DB 访问接口 "MSDAORA" 为列提供的元数据不一致。对象 ""CMCC"."OS2_GIS_CELL"" 的列 "ISOPENED" (编译时序号为 )在编译时有 的 "DBTYPE",但在运行时有 5。

  B、查询Oracle数据表方式二(经试验,这种方式使用起来很顺畅,不报错,且速度几乎和在Oralce中一样快):

  select * from openquery(LINK2ORACLE,'select * from OracleUserName.TableName')

  您可以把openquery()当成表来使用。

  C、举个例子(将Oralce用户HRSOFT下的用户表WEBUSER导入到SQLServer数据库中):

  select * into OS_GIS_WEBUSER from openquery(LINK2ORACLE,'select * from HRSOFT. WEBUSER)

  D、更便捷的方式:通过创建同义词进行便捷查询:

  CREATE SYNONYM OS_GIS_CELL FOR [ORACLELK]..[CMCC].OS_GIS_CELL;

  select * from os_gis_cell;

  select * from os_gis_cell a where a.CellName is null;

注意:涉及 Oracle 部分的 SQL 语句,尤其是 [ORACLELINK]..[ORACLE_USER_NAME].TABLE_NAME 一定要大写,否则会报类似错误:

消息 ,级别 ,状态 1,第 1 行

链接服务器 "ORACLELK" 的 OLE DB 访问接口 "MSDAORA" 不包含表 ""CMCC"."OS2_gis_CELL""。该表不存在,或者当前用户没有访问该表的权限。

配置???矗?/P>

工程INPLAN:

(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=..2.6)(PORT=)))(CONNECT_DATA=(SID=sa)(SERVER=DEDICATED)))

ERP:

(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL = TCP)(HOST = ..3.)(PORT = )))(CONNECT_DATA =(SID= TJTEST)))

(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL = TCP)(HOST = ..3.)(PORT = )))(CONNECT_DATA =(SID= TJTEST)))

新建作?I里的代?:

delete from XBLD_Information

INSERT INTO XBLD_Information(job_name, num_layers, JB_PP1, JB_PC1, JB_PP2, JB_PC2, JB_PP3, JB_PC3, PP_PP1, PP_PC1, PP_PP2, PP_PC2, PP_PP3, PP_PC3, PP_PP4,PP_PC4,BM)

select * from openquery(INPLAN,'

select mjs.job_name, mjs.num_layers,mjs1.MM1 JB_PP1,mjs1.MC1 JB_PC1,mjs2.MM2 JB_PP2,mjs2.MC2 JB_PC2,mjs3.MM3 JB_PP3,mjs3.MC3 JB_PC3,mjs.MM1 PP_PP1,mjs.MC1 PP_PC1,mjs.MM2 PP_PP2,mjs.MC2 PP_PC2,mjs.MM3 PP_PP3,mjs.MC3 PP_PC3,mjs.MM4 PP_PP4,mjs.MC4 PP_PC4,Substr(mjs.job_name,5,2) BM

from

(select mjl.job_name,

mjl.num_pcbs,

mjl.num_arrays,

mjl.num_panles_,

mjl.num_layers,

substr(mjl.op_size_y_string_,instr(mjl.op_size_y_string_,''='')+1,length(mjl.op_size_y_string_)-instr(mjl.op_size_y_string_,''='')+1) y_size, --??へ??

substr(mjl.op_size_x_string_,instr(mjl.op_size_x_string_,''='')+1,length(mjl.op_size_x_string_)-instr(mjl.op_size_x_string_,''='')+1) x_size --??へ??

from tj.my_job_list mjl

) mjs,

(select *

from

(select mjs.job_name,

decode(DENSE_RANK() over( partition by job_name order by material_name,material_count),1,material_name) MM1,

decode(DENSE_RANK() over( partition by job_name order by material_name,material_count),1,material_count) MC1

from tj.my_job_stackup_material_count mjs

where mjs.type_T=''Core''

)where MM1 is not null

) mjs1,

(select *

from

(select mjs.job_name,

decode(DENSE_RANK() over( partition by job_name order by material_name,material_count),2,material_name) MM2,

decode(DENSE_RANK() over( partition by job_name order by material_name,material_count),2,material_count)MC2

from tj.my_job_stackup_material_count mjs

where mjs.type_T=''Core''

) where MM2 is not null

) mjs2,

(select *

from

(select mjs.job_name,

decode(DENSE_RANK() over( partition by job_name order by material_name,material_count),3,material_name) MM3,

decode(DENSE_RANK() over( partition by job_name order by material_name,material_count),3,material_count)MC3

from tj.my_job_stackup_material_count mjs

where mjs.type_T=''Core''

) where MM3 is not null

) mjs3,

(select *

from

( select mjs.job_name,

decode(DENSE_RANK() over( partition by job_name order by material_name,material_count),1,material_name) MM1,

decode(DENSE_RANK() over( partition by job_name order by material_name,material_count),1,material_count) MC1

from tj.my_job_stackup_material_count mjs

where mjs.type_T=''Prepreg''

)where MM1 is not null

) mjs,

(select *

from (

select mjs.job_name,

decode(DENSE_RANK() over( partition by job_name order by material_name,material_count),2,material_name) MM2,

decode(DENSE_RANK() over( partition by job_name order by material_name,material_count),2,material_count)MC2

from tj.my_job_stackup_material_count mjs

where mjs.type_T=''Prepreg''

)where MM2 is not null

) mjs,

(select *

from

( select mjs.job_name,

decode(DENSE_RANK() over( partition by job_name order by material_name,material_count),3,material_name) MM3,

decode(DENSE_RANK() over( partition by job_name order by material_name,material_count),3,material_count)MC3

from tj.my_job_stackup_material_count mjs

where mjs.type_T=''Prepreg''

)

where MM3 is not null

) mjs,

(select distinct *

from

( select mjs.job_name,

decode(DENSE_RANK() over( partition by job_name order by material_name,material_count),4,material_name) MM4,

decode(DENSE_RANK() over( partition by job_name order by material_name,material_count),4,material_count)MC4

from tj.my_job_stackup_material_count mjs

where mjs.type_T=''Prepreg''

) where MM4 is not null

) mjs

where mjs.job_name=mjs1.job_name(+)

and mjs.job_name=mjs2.job_name(+)

and mjs.job_name=mjs3.job_name(+)

and mjs.job_name=mjs.job_name(+)

and mjs.job_name=mjs.job_name(+)

and mjs.job_name=mjs.job_name(+)

and mjs.job_name=mjs.job_name(+)

')

UPDATE XBLD_Information SET BM=b.Describe from XBLD_Information a, XBLD_BM b where a.bm=b.id

推荐整理分享通过创建SQLServer 2005到 Oracle10g 的链接服务器实现异构数据库数据转换方案,希望有所帮助,仅作参考,欢迎阅读内容。

通过创建SQLServer 2005到 Oracle10g 的链接服务器实现异构数据库数据转换方案

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

MSSQL 安全设置图文教程 1、安装MSSQL时使用混合模式,当然SA密码最好不能为空,在SQL中,可以对SA这个超级用户名进行修改或删除。usemasterALTERLOGIN[sa]WITHNAME=[zxs]/*修改SA帐号*

SQL 使用专用管理员连接(DAC)的技巧及修改系统表的方法 Server专用管理员连接(DAC)使用技巧1什么是专用管理员连接?SQLServer为管理员提供了一种特殊的诊断连接,以供在无法与服务器建立标准连接时使

在登录触发器错误情况下连接SQL Server的方法 错误如图所示:图一如果不能很好地执行登录触发器,那么将会导致登录失败。例如,如果创建了这个触发器,那么就可以设计下面的代码来达到失败的

标签: 通过创建SQLServer 2005到 Oracle10g 的链接服务器实现异构数据库数据转换方案

本文链接地址:https://www.jiuchutong.com/biancheng/319339.html 转载请保留说明!

上一篇:SqlServer2005 自动备份并存储另一电脑上的存储过程函数(sql服务如何自动启动)

下一篇:MSSQL 2005 安全设置图文教程(sql server如何进行安全设置)

  • 减免税填到营业外收入哪一项
  • 汇算清缴申报的时候资产总额带不出来
  • 购入原材料结转采购成本的会计分录
  • 资金账簿减半征收印花税财税2018 50号
  • 报关金额多报了3000美金
  • 其他应收款减值测试注意什么
  • 怎么查自己是否
  • 按月按季申报
  • 建筑企业异地预缴增值税计算
  • 建筑业会计科目工程结算
  • 房地产企业土地使用税
  • 合伙企业是否需要缴纳增值税
  • 设备发票怎么抵扣
  • 购买国税金税卡年费应该怎么做账务处理?
  • 子公司给母公司开票
  • 事业单位乱报销出纳怎么办?
  • 去国税申请开票需要法人和财务去吗?
  • gdp等于消费加储蓄加税收
  • 企业会计准则基本准则的主要内容
  • 成立公司工会
  • 虚假会计凭证有哪些识别方法
  • 呆帐死帐处理
  • 免征的税款每月几号申报
  • 出差补助没有发票可以直接入账吗
  • 商誉减值会计准则
  • 企业不得抵扣进项税
  • 腾讯电脑管家的信任区在哪里
  • 资产报废对企业的好处
  • 生产和提供的区别
  • win10版本2004和20h2
  • 私企固定资产管理办法
  • 员工辞退补偿金扣个税吗
  • 欧罗巴山脉自驾
  • php执行脚本
  • 2023年生活性服务业加计扣除
  • 工地扬尘检测仪防尘缸怎么安装
  • vue3怎么样
  • 一般纳税人筹建期不用交税吗
  • vue关闭路由
  • 暂估少了冲销时怎么办
  • 收到外币汇款怎么处理
  • 印花税的花贴在哪里
  • 运费已付发票未到会计分录
  • 以旧换新方式销售金银首饰的消费税处理
  • 收到抵扣发票怎么做分录
  • SQLserver数据库的while附近有语法错误,应为AS
  • sqlserver数据类型转换函数
  • 微众银行的企业贷款好批吗
  • 资产减值损失包括什么
  • 同一控制下企业合并发生的审计费用计入
  • MYSQL的select 学习笔记
  • 其他综合收益的税后净额怎么计算
  • 多用途卡的监管机构是
  • 销售合同的印花税由谁交
  • 账本还用贴印花税票吗
  • 贷款服务有哪些项目
  • 库存现金的主要内容有哪些
  • 成本费用率计算公式中包含税金及附加吗
  • 客运运价杂费收据填写例题
  • winxp系统安装教程
  • window xp电脑连接宽带怎么连接
  • 服务器迁移至新服务器方法
  • mac book视频
  • win7同步中心怎么关掉
  • win1020h2版本怎么更新
  • fsck.mode
  • win8.1技巧
  • win10周年版
  • cocos2dx drawcall优化
  • 每天看30分钟手机可以吗
  • jquery data-
  • jQuery基于xml格式数据实现模糊查询及分页功能的方法
  • node.js怎么搭建服务器
  • Node.js中的什么模块是用于处理文件和目录的
  • [android] android开发中常用的Eclipse快捷键
  • python app爬虫教程
  • 北京市国家税务网
  • 河北国税网上办税云厅手机
  • 1950土地改革后土地所有权
  • 一巩固三衔接
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设