位置: 编程技术 - 正文

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

  • 加计抵扣10%的进项税 会计处理
  • 计提生产车间工人和车间管理人员工资
  • 商品进销差价在贷方代表什么
  • 借条时间到了怎么续
  • 餐饮业税负上升有什么原因
  • 公司员工社保怎么办理的
  • 境外企业转让非居民企业
  • 股东出资方式和比例是否合法?并说明理由
  • 滞纳金可以个人承担吗
  • 分公司与总公司承担责任的法律规定
  • 这个月只有进项没有销项
  • 安装工程什么时候计提成本费用
  • 个人独资企业是一般纳税人吗
  • 异地作业人员的个税必须在收入地交吗?
  • 简易征收的增值税可以在税前列支吗
  • 出口退税管理系统怎么登录
  • 交易性金融资产和长期股权投资的区别
  • 合同返点提成犯法吗
  • 仲裁委判决还能上诉吗
  • 支付给业主的赔偿金
  • 人民法院被收买了怎么办
  • 中介收中介费后就不管了
  • 帮别的公司代销产品,对方公司不开具发票怎么做帐
  • 购买员工宿舍床上用品怎么入账
  • 多提的费用如何做冲减分录
  • 销售回款率的具体指标
  • 事业单位服务收入怎么做账
  • 合同条款签订
  • 计提增值税的会计科目
  • 应收票据及应收账款是什么科目
  • 所得税返还计入什么科目
  • php实现留言板功能
  • 固定资产以前年度未入账怎么处理
  • Attentional Feature Fusion 注意力特征融合
  • php微信公众号 全站模板
  • 会计记账凭证摘要如何编写
  • 律师事务所要交残保金吗
  • 尚未进行抄报税无法申报是什么意思
  • 第三方车行
  • 软件服务费可以全额抵扣吗?
  • 金融债券的利息不计复利不能提前支取
  • 抄税前要做什么
  • 收到失业保险稳岗补贴怎么做会计分录
  • 清算中的资产损失
  • 已认证的增值税专用发票可以作废吗
  • 可抵扣的税票
  • 应交税费应交增值税借贷方向
  • 一季度存款
  • 对方开的增值税普票怎么查
  • 用美元账户余额怎么用
  • 销售折让如何核算
  • 金蝶k3怎么打印科目余额表
  • 差旅费报销单是谁填写的
  • 销项税额减去进项税额就是该交的税吗
  • 金税盘费用不交会怎么样
  • 简述什么是实收资本
  • sql Set IDENTITY_INSERT的用法
  • 高端电脑品牌
  • linux命令rz -y
  • vmwarevmx进程是干嘛的
  • win7安装office2010错误1935
  • win8截屏在哪个文件夹
  • guardhp.exe是什么意思
  • 删除window
  • win8怎么开机不用密码
  • 用python编写程序
  • qt搭建opencv
  • 原生js制作日历软件
  • Node.js中的construct构造函数
  • nodejs开启多线程
  • shell脚本判断命令是否执行成功
  • unity打包全屏
  • 山西省税务局投诉平台
  • 税务局核查研发费举措
  • 广东省国家税务局电子税务局官网
  • 税局可以办理哪些业务
  • 退车辆购置税流程怎么操作
  • 电子税务平台怎么红冲纸质发票
  • 江苏省官网
  • 注册一个信息咨询公司需要什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设