位置: 编程技术 - 正文

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

  • 自来水水费增值税发票票样
  • 累进税率的税种有哪些
  • 小额零星开支税前扣除
  • 如何确定交易性金融资产
  • 财务报表没申报以后可不可以补申报
  • 公司没有账目违法吗
  • 其他现代服务业能开哪些税目
  • 公司的班车费用用什么发票
  • 新会计准则 预付房租怎么做账
  • 金税盘服务费能抵税吗
  • 合并会计报表调整分录
  • 土地增值税计税价格
  • 房产税按原值计算公式
  • 增值税专票未认证丢失怎么办
  • 库存商品进行非货币资产交换收入怎么确定
  • 公司注销税务需要交多少钱
  • 小微企业所得税优惠政策最新2023
  • 民办幼儿园怎么给老师交五险一金
  • 信息服务费发票范围
  • 供应商质量扣款通知单
  • 工会经费怎么申报,多久报一次
  • 收到培训内容的英文
  • 王者荣耀中刘邦技能解析以及如何连招
  • 如何生成系统图
  • 苹果mac系统桌面空间不够
  • 无法使用内置管理员账户打开micr
  • rsrcmtr.exe - rsrcmtr是什么进程 有什么用
  • 预收账款什么时候确认
  • php字符串变量
  • 固定资产大修理支出计入什么科目
  • 鸿蒙系统怎么退出开发者选项
  • 收取包装物押金税率
  • 收到汽车维修费的会计分录
  • 电影剧本如何代替
  • 纳税人提供劳务派遣服务,选择差额纳税的,按照5%
  • php抽奖程序源码
  • php引用文件的方法
  • 微信公众平台的名词解释
  • php自动提交表单
  • 风险敞口是指什么
  • 差旅费报销应注意什么
  • php提交表单数据有哪几种方法
  • ssh-keygen -m pem
  • 什么是汇算清缴申报表
  • 维修费应该计入什么科目
  • 个税申报的本期收入填什么
  • java的范式
  • 漏税处罚
  • 用vue-cli搭建项目
  • 递延收益为什么是递延所得税资产
  • 公司收到保险公司赔款后又转给个人怎么处理
  • 企业进出口贸易
  • 不得从销项中抵扣的进项有哪些
  • 计提固定资产折旧是什么意思
  • mysql同步复制搭建方法指南详细步骤
  • mysql删除表中某个字段
  • 应付利息的会计分录怎么写
  • 外部审计的构成
  • 电子汇票接收后怎么操作
  • 客户付了订金后能退吗
  • 小企业建账选哪种会计制度
  • mysql远程用户登录
  • 详解MySQL中ALTER命令的使用
  • 苹果15手机价格和图片颜色
  • linux防火墙设置firewalld
  • win7系统防火墙有必要开吗
  • linux新手教学
  • vnc登录linux
  • windows live language setting
  • win10系统应用和功能中不能卸载
  • jquery跟随鼠标移动
  • nodejs bull
  • javascript教程完整版
  • shell 批量删除
  • 利用ctypes提高Python的执行速度
  • Activity与Theme
  • android mvp mvc
  • 文山市税务
  • 第二税务所干什么的
  • 申报土地增值税需要什么资料
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设