informatica数据迁移之Sybase2Oracle

获取以Sybase为源或目标的表,修改表结构

      1、源表很容易找到


目标表就杂乱无章了


2、获取以Sybase为目标库的表

        首先查看Sybase下相关库的链接


然后导出所有工作流xml文件,提取目标映射



接着导出所有mapping xml文件根据映射名提取的目标表才是Sybase下特定模式的目标表


3、源和目标表提取完后修改xml配置文件

   字段类型的修改:

           str = str.replace("DATATYPE =\"datetime\"","DATATYPE =\"date\"");  
            str = str.replace("DATATYPE =\"time\"","DATATYPE =\"date\"");   
            str = str.replace("DATATYPE =\"char\"", "DATATYPE =\"varchar2\""); 
            str = str.replace("DATATYPE =\"varchar\"", "DATATYPE =\"varchar2\"");
            str = str.replace("DATATYPE =\"int\"", "DATATYPE =\"number(p,s)\"");   
            str = str.replace("DATATYPE =\"numeric\"", "DATATYPE =\"number(p,s)\""); 
            str = str.replace("DATATYPE =\"decimal\"", "DATATYPE =\"number(p,s)\"");
            str = str.replace("DATATYPE =\"integer\"", "DATATYPE =\"number(p,s)\"");  
            str = str.replace("DATATYPE =\"smallint\"", "DATATYPE =\"number(p,s)\""); 
            str = str.replace("DATATYPE =\"tinyint\"", "DATATYPE =\"number(p,s)\""); 
            str = str.replace("DATATYPE =\"bit\"", "DATATYPE =\"number(p,s)\"");  
            str = str.replace("DATATYPE =\"number\"", "DATATYPE =\"number(p,s)\"");

 偏移量的修改:


OFFSET(N)=OFFSET(N-1)+LENGTH(N-1);

PHYSICALOFFSET=PHYSICALOFFSET(N-1)+PHYSICALLENGTH(N-1)

日期类型的LENGTH \   PHYSICALLENGTH都设为19,精度SCALE设为0

数据库信息也做相应修改


修改后导入选择替换规则

表结构就算修改完了;

4、导入源和目标XML后导出mapping修改源表所对应的Source Qualifier 字段类型

str = str.replace("DATATYPE =\"integer\"", "DATATYPE =\"decimal\"");否则修改连接后,会因为字段类型错误而导致映射无效



5、最后修改关系连接,导出所有session,必须是在修改并替换了表结构及mapping之后



修改完后导入替换,基本完事

最后因为客户端不能逐个导出xml文件,导成一个又会丢失信息不便解析,批量导出文件shell脚本如下



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值