加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

如何从sqlserver中把表数据导入到oracle? .

发布时间:2020-12-12 14:12:41 所属栏目:MsSql教程 来源:网络整理
导读:需求:从sqlserver中把2008-01-01到2009-12-31的凭证头表的数据导入到oracle数据库中 ? 实现步骤: 1、登录进入SQL Server Management Studio,选择要导出的数据库,新建查询分析窗口 2、执行如下命令: ???? EXEC master..xp_cmdshell 'bcp "SELECT * from

需求:从sqlserver中把2008-01-01到2009-12-31的凭证头表的数据导入到oracle数据库中

?

实现步骤:

1、登录进入SQL Server Management Studio,选择要导出的数据库,新建查询分析窗口

2、执行如下命令:

???? EXEC master..xp_cmdshell 'bcp "SELECT * from 数据库名.dbo.t_gl_voucher where fbizdate>=''2008-01-01'' and fbizdate<=''2009-12-31''"queryout c:voucherData_09.txt -c -U"sa" -P"sa的密码"';

?????输出数据文件c:voucherData.txt,这是一个仅包含文本数据且列以tab键分隔的数据文件

???? 如果输出整个表的数据更简单,具体查看bcp命令帮助

???

???? 注意:如果存储过程xp_cmdshell无法使用,请先执行以下存储过程:
???? EXEC sp_configure 'show advanced options',1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell',1;RECONFIGURE;
????

3、做一个oracle导入用的控制文件(文本格式),名称为voucher.ctl,内容如下:

???? load data          ???? --1、控制文件标识
???? infile 'c:voucherData_09.txt '   ? --2、要输入的数据文件名
???? append into table CG_T_GL_Voucher_09  --3、向凭证表中追加记录
???? fields terminated by X'09'  ??? --4、字段终止于X '09 ',是一个制表符(TAB)
???? TRAILING NULLCOLS???????????????? --5、去掉空记录
???? (FID,
????? FNUMBER,
???FBIZDATE "TO_DATE(SUBSTR(TO_CHAR(:FBIZDATE),1,19),'yyyy-mm-dd hh24:mi:ss')",
???FCREATORID,
???FCREATETIME? "TO_DATE(SUBSTR(TO_CHAR(:FCREATETIME),
???FLASTUPDATEUSERID,
???FLASTUPDATETIME? "TO_DATE(SUBSTR(TO_CHAR(:FLASTUPDATETIME),
???FHANDLERID,
???FDESCRIPTION,
???FHASEFFECTED,
???FAUDITORID,
???FSOURCEBILLID,
???FSOURCEFUNCTION,
???FCOMPANYID,
???FPERIODID,
???FVOUCHERTYPEID,
???FCASHIERID,
???FPOSTERID,
???FCANCELLERID,
???FSOURCESYS,
???FSOURCETYPE,
???FBOOKEDDATE? "TO_DATE(SUBSTR(TO_CHAR(:FBOOKEDDATE),
???FCASHFLOWFLAG,
???FISREVERSEVOUCHER,
???FATTACHMENTS,
???FENTRYCOUNT,
???FLOCALDEBITAMOUNT,
???FLOCALCREDITAMOUNT,
???FREPORTINGDEBITAMOUNT,
???FREPORTINGCREDITAMOUNT,
???FBIZSTATUS,
???FCURRENCYID,
???FHASREVERSED,
???FBGSTATUS,
???FHASCASHACCOUNT,
???FISAC,
???FCONTROLUNITID,
???FABSTRACT,
???FCALSUBMITBAL,
???FISACNOTICE,
???FISCUSSENT,
???FISCHECK,
???FISCLOSE,
???FISACCOUNTCOPY,
???FISMGCTRL
??)

?? 注意以上日期列的处理有点特殊,否则导入会报错

4、在oracle数据库中创建t_gl_voucher表

5、执行sqlldr命令,导入到oracle数据库,命令如下:

???? c:&;Sqlldr userid=用户/密码 control=c:voucher.ctl

6、导入完毕!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读