位置: 编程技术 - 正文

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

  • 中国电信的通信网络
  • 外商投资合伙企业的性质与特征
  • 小规模纳税人免征增值税怎么记账
  • 非限定性净资产包括哪些科目
  • 建筑业收到预收款预缴增值税
  • 固定资产清理期末余额在借方是什么意思
  • 企业不加入工会可以吗
  • 个税app显示已离职是什么原因
  • 收到银行转来的进账通知单,上月的销货款
  • 申报个税大病医疗如何申报
  • 偶然所得计税依据 包不包含增值税
  • 商业汇票贴现金额的计算
  • 中秋员工福利费会计分录
  • 广告业 增值税
  • 旅行社差额纳税发票怎么开具
  • 职工福利费为什么是14%
  • 营业收入在财务报表上跟实际多出来怎么解释
  • 中介公司属于工业企业吗
  • 利润弥补以前年度亏损是税前吗
  • 个体户可以不领税控盘吗
  • 外贸企业运输费用占总成本比例
  • 下属单位或者其他单位和个人的车辆
  • 缴纳车船税的车辆
  • 上年度职工工资总额
  • 小规模纳税人如何开专票
  • 保险公司赔偿的存货自然灾害损失
  • 购买收益权如何缴税
  • 苹果Mac电脑怎么锁屏
  • 暂估入库发票回来怎么做账
  • 工伤保险的作用有
  • 质押的应收票据怎么做账
  • 服务器centos6.9安装教程
  • 公司收到加盟费怎么做会计分录
  • 应收账款转让的风险
  • plugin.exe是什么进程
  • 运输行业增值税税负率是多少
  • 委托代销商品的代销费用
  • 小规模纳税人开票限额是多少
  • 公允价值的利弊
  • 销货退回与折让属于什么科目
  • 购进设备抵扣税额
  • 现金流量表中如何考虑折旧费
  • vue父组件如何调用子组件的方法组合式api
  • js检查json是否合法
  • 仓库发货打包以及建议年终总结
  • mysql的存储
  • 无盘领发票要怎么办
  • wordpress隐藏内容付费可见
  • mysql常用查询语句大全
  • 年数总和法怎么算年折旧额
  • 异地项目增值税要异地缴纳吗
  • 房产税从租和从价都要交吗
  • 劳务分包的形式完成施工任务
  • 企业无力支付票据
  • 多计提的工资怎么冲销
  • 关于利润分配科目的表述正确的有
  • 建筑业异地预交税款最新规定
  • 公司收到股东的投资款以后怎么处理
  • 停车发票怎么盖章
  • 组织员工旅游的租宿费的税额是什么
  • 审核通过的红字信息表可以删除吗
  • sql常用的语句大全
  • winxp电脑显示器亮度怎么调
  • 路由怎么配
  • win8任务管理器在哪
  • win10电脑系统配置
  • xp系统如何安装软件
  • xp怎么安装framework
  • xp局域网文件共享设置
  • linux图形界面与命令行
  • linux的命令行界面
  • cocos2dx 3.4 lua加密 setXXTEAKeyAndSign
  • bootstrap基础教程书籍
  • fw开发
  • javascript详细介绍
  • JavaScript For Beginners(转载)
  • python socket用法
  • jquery complete
  • 税控盘怎么查看开票截止日期
  • 海关行政处罚实施条例的适用范围
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设