通过创建SQL Server 到 Oracle10g 的链接服务器实现异构数据库数据转换方案.docx
- 文档编号:12309269
- 上传时间:2023-04-18
- 格式:DOCX
- 页数:11
- 大小:263.98KB
通过创建SQL Server 到 Oracle10g 的链接服务器实现异构数据库数据转换方案.docx
《通过创建SQL Server 到 Oracle10g 的链接服务器实现异构数据库数据转换方案.docx》由会员分享,可在线阅读,更多相关《通过创建SQL Server 到 Oracle10g 的链接服务器实现异构数据库数据转换方案.docx(11页珍藏版)》请在冰豆网上搜索。
通过创建SQLServer到Oracle10g的链接服务器实现异构数据库数据转换方案
1、新建链接服务器的方法
在图1中选中“链接服务器”,右键选择“新建链接服务器”,如图2,配置相关参数。
2、配置相关参数
在“常规”选项中,填写“链接服务器名称”,访问接口选中
“MicrosoftOLEDBProviderforOracle”项。
其中产品名称、数据源、访问接口字符串请填写配置的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*FROMWEBUSER
如果报告成功,那么我们的数据就已经写入到Oracle中了。
用SELECT* FROM ORADBCONN..HRSOFT.WEBUSER
查看Oracle数据库中是否已经有数据了。
4、链接服务器应用
A、查询Oracle数据表方式一(这种方式,当Oracle与SQLServer的数据类型不一致时经常报错,且速度稍慢):
select*from[LINK2ORACLE]..[ORACLE_USER_NAME].TABLE_NAME;
我在执行该语句经常报类似错误信息:
链接服务器"LINK2ORACLE"的OLEDB访问接口"MSDAORA"为列提供的元数据不一致。
对象""CMCC"."OS2_GIS_CELL""的列"ISOPENED"(编译时序号为20)在编译时有130的"DBTYPE",但在运行时有5。
B、查询Oracle数据表方式二(经试验,这种方式使用起来很顺畅,不报错,且速度几乎和在Oralce中一样快):
select*fromopenquery(LINK2ORACLE,'select*fromOracleUserName.TableName')
您可以把openquery()当成表来使用。
C、举个例子(将Oralce用户HRSOFT下的用户表WEBUSER导入到SQLServer2005数据库中):
select*intoOS_GIS_WEBUSERfromopenquery(LINK2ORACLE,'select*fromHRSOFT.WEBUSER)
D、更便捷的方式:
通过创建同义词进行便捷查询:
CREATESYNONYMOS_GIS_CELLFOR[ORACLELK]..[CMCC].OS_GIS_CELL;
select*fromos_gis_cell;
select*fromos_gis_cellawherea.CellNameisnull;
注意:
涉及Oracle部分的SQL语句,尤其是[ORACLELINK]..[ORACLE_USER_NAME].TABLE_NAME一定要大写,否则会报类似错误:
消息7314,级别16,状态1,第1行
链接服务器"ORACLELK"的OLEDB访问接口"MSDAORA"不包含表""CMCC"."OS2_gis_CELL""。
该表不存在,或者当前用户没有访问该表的权限。
配置數據源:
工程INPLAN:
(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.2.6)(PORT=1521)))(CONNECT_DATA=(SID=sa)(SERVER=DEDICATED)))
ERP:
(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.3.25)(PORT=1528)))(CONNECT_DATA=(SID=TJTEST)))
(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.3.25)(PORT=1528)))(CONNECT_DATA=(SID=TJTEST)))
新建作業里的代碼:
delete fromXBLD_Information
INSERTINTO 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*fromopenquery(INPLAN,'
select mjs15.job_name,mjs15.num_layers,mjs1.MM1JB_PP1,mjs1.MC1JB_PC1,mjs2.MM2JB_PP2,mjs2.MC2JB_PC2,mjs3.MM3JB_PP3,mjs3.MC3JB_PC3,mjs11.MM1PP_PP1,mjs11.MC1PP_PC1,mjs12.MM2PP_PP2,mjs12.MC2PP_PC2,mjs13.MM3PP_PP3,mjs13.MC3PP_PC3,mjs14.MM4PP_PP4,mjs14.MC4PP_PC4,Substr(mjs15.job_name,5,2)BM
from
(selectmjl.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_listmjl
)mjs15,
(select*
from
(selectmjs.job_name,
decode(DENSE_RANK()over(partitionbyjob_name orderbymaterial_name,material_count),1,material_name)MM1,
decode(DENSE_RANK()over(partitionbyjob_name orderbymaterial_name,material_count),1,material_count)MC1
fromtj.my_job_stackup_material_countmjs
wheremjs.type_T=''Core''
)whereMM1isnotnull
)mjs1,
(select *
from
(selectmjs.job_name,
decode(DENSE_RANK()over(partitionbyjob_name orderbymaterial_name,material_count),2,material_name)MM2,
decode(DENSE_RANK()over(partitionbyjob_name orderbymaterial_name,material_count),2,material_count)MC2
fromtj.my_job_stackup_material_countmjs
wheremjs.type_T=''Core''
)whereMM2isnotnull
)mjs2,
(select*
from
(selectmjs.job_name,
decode(DENSE_RANK()over(partitionbyjob_name orderbymaterial_name,material_count),3,material_name)MM3,
decode(DENSE_RANK()over(partitionbyjob_name orderbymaterial_name,material_count),3,material_count)MC3
fromtj.my_job_stackup_material_countmjs
wheremjs.type_T=''Core''
)whereMM3isnotnull
)mjs3,
(select *
from
(selectmjs.job_name,
decode(DENSE_RANK()over(partitionbyjob_name orderbymaterial_name,material_count),1,material_name)MM1,
decode(DENSE_RANK()over(partitionbyjob_name orderbymaterial_name,material_count),1,material_count)MC1
fromtj.my_job_stackup_material_countmjs
wheremjs.type_T=''Prepreg''
)whereMM1isnotnull
) mjs11,
(select*
from(
selectmjs.job_name,
decode(DENSE_RANK()over(partitionbyjob_name orderbymaterial_name,material_count),2,material_name)MM2,
decode(DENSE_RANK()over(partitionbyjob_name orderbymaterial_name,material_count),2,material_count)MC2
fromtj.my_job_stackup_material_countmjs
wheremjs.type_T=''Prepreg''
)whereMM2isnotnull
)mjs12,
(select *
from
(selectmjs.job_name,
decode(DENSE_RANK()over(partitionbyjob_name orderbymaterial_name,material_count),3,material_name)MM3,
decode(DENSE_RANK()over(partitionbyjob_name orderbymaterial_name,material_count),3,material_count)MC3
from tj.my_job_stackup_material_countmjs
wheremjs.type_T=''Prepreg''
)
whereMM3isnotnull
)mjs13,
(selectdistinct*
from
( selectmjs.job_name,
decode(DENSE_RANK()over(partitionbyjob_name orderbymaterial_name,material_count),4,material_name)MM4,
decode(DENSE_RANK()over(partitionbyjob_name orderbymaterial_name,material_count),4,material_count)MC4
fromtj.my_job_stackup_material_countmjs
wheremjs.type_T=''Prepreg''
)whereMM4isnotnull
)mjs14
wheremjs15.job_name=mjs1.job_name(+)
andmjs15.job_name=mjs2.job_name(+)
andmjs15.job_name=mjs3.job_name(+)
andmjs15.job_name=mjs11.job_name(+)
andmjs15.job_name=mjs12.job_name(+)
andmjs15.job_name=mjs13.job_name(+)
andmjs15.job_name=mjs14.job_name(+)
')
UPDATEXBLD_InformationSETBM=b.DescribefromXBLD_Informationa,XBLD_BMbwherea.bm=b.id
出师表
两汉:
诸葛亮
先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。
然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。
诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。
宫中府中,俱为一体;陟罚臧否,不宜异同。
若有作奸犯科及为忠善者,宜付有司论其刑赏,以昭陛下平明之理;不宜偏私,使内外异法也。
侍中、侍郎郭攸之、费祎、董允等,此皆良实,志虑忠纯,是以先帝简拔以遗陛下:
愚以为宫中之事,事无大小,悉以咨之,然后施行,必能裨补阙漏,有所广益。
将军向宠,性行淑均,晓畅军事,试用于昔日,先帝称之曰“能”,是以众议举宠为督:
愚以为营中之事,悉以咨之,必能使行阵和睦,优劣得所。
亲贤臣,远小人,此先汉所以兴隆也;亲小人,远贤臣,此后汉所以倾颓也。
先帝在时,每与臣论此事,未尝不叹息痛恨于桓、灵也。
侍中、尚书、长史、参军,此悉贞良死节之臣,愿陛下亲之、信之,则汉室之隆,可计日而待也
。
臣本布衣,躬耕于南阳,苟全性命于乱世,不求闻达于诸侯。
先帝不以臣卑鄙,猥自枉屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。
后值倾覆,受任于败军之际,奉命于危难之间,尔来二十有一年矣。
先帝知臣谨慎,故临崩寄臣以大事也。
受命以来,夙夜忧叹,恐托付不效,以伤先帝之明;故五月渡泸,深入不毛。
今南方已定,兵甲已足,当奖率三军,北定中原,庶竭驽钝,攘除奸凶,兴复汉室,还于旧都。
此臣所以报先帝而忠陛下之职分也。
至于斟酌损益,进尽忠言,则攸之、祎、允之任也。
愿陛下托臣以讨贼兴复之效,不效,则治臣之罪,以告先帝之灵。
若无兴德之言,则责攸之、祎、允等之慢,以彰其咎;陛下亦宜自谋,以咨诹善道,察纳雅言,深追先帝遗诏。
臣不胜受恩感激。
今当远离,临表涕零,不知所言。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通过创建SQL Server Oracle10g 的链接服务器实现异构数据库数据转换方案 通过 创建 SQL 链接 服务器 实现 数据库 数据 转换 方案
链接地址:https://www.bdocx.com/doc/12309269.html