位置: 编程技术 - 正文

通过创建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如何进行安全设置)

  • 报关单境外收货人错了怎么办
  • 不缴或少缴应纳税款的处罚措施
  • 为什么要交税钱
  • 增值税附加税包括哪些税种及税率
  • 小规模纳税人的起征点是多少
  • 投资收益企业所得税优惠政策
  • 简易征收和简易计税的区别
  • 保证金抵扣货款分录
  • 订单式生产管理
  • 经营利润所得税费用的计算公式
  • 医院其他应付款过高的原因
  • 定额发票上的金额是什么
  • 建筑行业劳务费开发票可以开工程款吗?
  • 年终一次性奖金个税计算
  • 正确解读《非居民金融账户涉税信息尽职调查管理办法》
  • 企业定期存款是什么账户类型
  • 补缴员工社保银行怎么查
  • 付款方付款的发票税金能入账吗?
  • 销售折让怎么处理
  • 普票需要缴纳印花税吗
  • 买车预付款怎么记账
  • 积分兑换步骤
  • 电脑添加小工具
  • 营运资金管理策略有哪些
  • 没收的定金 会计分录
  • PHP:xml_parser_free()的用法_XML解析器函数
  • 转出未交增值税会计科目
  • 怎么做好零售
  • pavkre.exe - pavkre是什么进程 作用是什么
  • codeigniter3中文手册
  • Laravel5.* 打印出执行的sql语句的方法
  • 交易性金融资产公允价值变动计入
  • Smarty3配置及入门语法
  • 现金流量表中如何考虑折旧费
  • uni-app--》uni-app的生命周期讲解
  • 盈余公积转增资本什么意思
  • 设备租赁费怎么入账
  • 职工食堂资金管理办法
  • 哪种银行贷款利息最低
  • 暂估价与发票价的区别
  • 事业单位是怎样向上申请招人的
  • 车船税款
  • 土地增值税要计入税金及附加吗
  • 房地产开发产品科目设置
  • 免税收入是否可抵扣
  • 建筑施工企业质量管理规范
  • 差旅费会计科目怎么做
  • 材料盘盈如何入账
  • 老板买了手机,算入什么费用
  • 计提工资是否要交税
  • 什么情况下应选用基轴制配合
  • 营改增后建筑业开票规定
  • sql server复制数据库的方法
  • 英文版的windows
  • win8 win8.1
  • win10 电池报告
  • 复制糸统
  • windows常用功能
  • linux 挂载img
  • 利用()可以对系统进行全面的设置
  • u盘里装pe系统
  • bash.exe
  • windows中alt+tab
  • win7禁用administrator
  • win10mobile还能用吗
  • win10升级准备就绪需要多久
  • Win10 Mobile 10586.122 ROM安装包有多大?
  • python挑战
  • python自动化处理
  • 如何使用css设置元素的层叠效果?
  • unity2020怎么导入资源
  • jquery属性选择器,选取所有带href
  • android回调函数
  • javascript的用法
  • 地税局 要官
  • 供暖企业所涉及的行业
  • 如何打印纳税申报表
  • 重庆地税电子税务局app
  • 美国税务人员
  • 地税是什么时候开始征收耕地的呢
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设