公司有个项目,客户需要对项目系统做升级,升级牵涉到底层数据库,数据库都是Oracle的,但是表结构变动了,现在有个问题,有张表,表内的结构和新表有些区别,主要是字段名不一样,本来想用sqlServer的DTS工具,后来想到客户现场可能没有装SqlServer,所以我打算使用Sql语句进行直接迁移,方便现场操作。但是以前没有相关的编写这类Sql语句的经验,请问到底用什么语句写比较好?我打个比方
旧表叫OldTable,新表叫NewTable
2个表的机构为
OldTable
  Old_A
  Old_B
NewTable
  New_A
  New_B
现在要把OldTable中的A和B数据导入到新表的A和B中,应该写什么样的Sql语句导?还有就是因为是Oracle,新旧系统在不同的用户名之下创建的表空间,有办法直接跨用户名导吗?我目前设想的方案是,先在旧系统中建立一个新系统新表结构一样的临时表,再把数据导到这张临时表上,然后把这张临时表导出到文件,再在新系统的用户名下把他导入,这样可行吗?

解决方案 »

  1.   


    新系统的用户下执行:
    insert into newTable select old_a,old_b from 旧系统的用户名.oldTable;
      

  2.   

    新系统的new_a和new_b怎么对应?楼上这句貌似生成了个新表newTable,但是新系统除了new_a,new_b以外还有几个旧表中没有的字段呢,那怎么办?
      

  3.   

    即使我生成了这个只包含新表的new_a和new_b字段的新表,那再怎么办?alter table把他的表结构改回来吗?不好意思我真的对数据库的应用操作很生,以前没有做过,不知道这种情况到底实际操作怎么来的。