从sybase向oracle导入时间类型的数据

例:有表

--sybase

create table t_test(

mydate datetime)

go

--oracle

create t_test(mydate date)

方法1:在sybase侧建立视图,然后从导出视图(此方法舍弃了毫秒部分)

create view v_test as

select

convert(varchar(10),pst_exec_stime,111)+' '+convert(varchar(9),pst_exec_stime,8) mydate

from t_test

go

format文件如下(c:\test.fmt)

10.0

1

1              SYBCHAR      0              20              "\t"              1              my_date

命令

C:\>bcp testdb..v_test out c:\test.dat -f c:\test.fmt –Uusername –Ppassword –Ssybser

Oracle导入control文件如下(c:\test.ctl

Load data

Infile "c:\test.dat"

Badfile "c:\test.bad"

Append into table t_test

Fields terminated by'\t'(

Mydate "yyyy/mm/dd hh24:mi:ss"

)

命令

C:\>sqlldr username/password@sid control="c:\test.ctl" log="test.log"

方法2:和方法1类似不过不用建视图(此方法舍弃了毫秒部分)

format文件如下(c:\test.fmt)

10.0

1

1              SYBCHAR      0              26              "\t"              1              my_date

命令

C:\>bcp testdb..t_test out c:\test.dat -f c:\test.fmt –Uusername –Ppassword –Ssybser

Oracle导入control文件如下(c:\test.ctl

Load data

Infile "c:\test.dat"

Badfile "c:\test.bad"

Append into table t_test

Fields terminated by'\t'(

Mydate "DECODE(:mydate,NULL,TO_DATE('','MM-DD-YYYY'),TO_DATE(SUBSTRB(:mydate,1,instrb(:mydate,':',-1)-1)||' '|| SUBSTRB(:mydate,-2),,'Mon dd yyyy hh:mi:ss PM'))"

)

命令

C:\>sqlldr username/password@sid control="c:\test.ctl" log="test.log"

如果sybaseoracle的语言不一致,即导入的am/pm保留字为上午/下午什么的可以在sqlldr之前执行如下命令,转换成和sybase一致的语言

C:\>set NLS_LANG=American(美国语)

方法39i以上版本适用,在方法2的基础上进行改动即可(此方法保留毫秒部分)

将方法2Oracle导入control文件修改如下(c:\test.ctl

Load data

Infile "c:\test.dat"

Badfile "c:\test.bad"

Append into table t_test

Fields terminated by'\t'(

Mydate timestamp "MON DD YYYY HH:MI:SS:FF3AM"

)

其他同方法2

转自:http://hi.baidu.com/teemzhang/blog/item/bc709a8625b9503a66096e0f.html

  • 本文链接地址:http://www.dbainfo.net/import-datetime-date-to-oracle-from-sybase-ase.htm
  • 本文为dbainfo个人原创,请在尊重作者劳动成果的前提下进行转载;
  • 转载务必注明原始出处 : Sybase数据库技术,数据库恢复专家
  • 对《从sybase向oracle导入时间类型的数据》有何疑问或见解,请在本文下方发表;
  • 对网站还有其他问题或建议,请提交在留言板,谢谢!
  • 目前还没有任何评论.
    :wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)