sql数据库有大量表,表中有主外键,check,自增等约束条件的表,导出到oracle中没有这些东西了,如何处理呢?

解决方案 »

  1.   

    现在我只能写sql语句添加这些关系
    设置主键
    Alter table 表名
    ADD CONSTRAINT 主键名 PRIMARY KEY(列名);
    设置外键
    Alter table 表名
    ADD CONSTRAINT 外键名
     FOREIGN KEY (列名) REFERENCES 表名(列名);
    若有自增列,则建立序列
    --Create sequence 
    create sequence 序列名
    minvalue 0
    maxvalue 999999999999999999999999999
    start with 0
    increment by 1
    nocache;现有表中已经存在数据了,所以有的自增不是从0开始,还要查询每个表的当前值,
    select 自增的列名  FROM(
    SELECT * FROM 表名 order by 自增的列名 DESC)
    where rownum<2;我这样做是不是很笨呀,有哪位高人指点一下啊,郁闷中
      

  2.   

    还有就是oracle中没有级联更新吗?只有一个级联删除On Delete CASCADE,好像也只能在创建表时才能设置,更改表就不行。好麻烦啊,难道若有级联删除和级联更新的表,还要把表删除重新建立结构?
      

  3.   

    级联删除On Delete CASCADE不用重建表结构,只需修改表
    Alter table 表名
    ADD CONSTRAINT 约束名
     FOREIGN KEY(列名) REFERENCES 参考表名(列名) on delete cascade;我在这自问自答,有没有人来交流一下啊。
      

  4.   

    SQLServer能不能把建表的语句解析出来? 如果可以的话在Oracle里面执行一下就可以实现相应的约束,索引创建呀。
      

  5.   

    SQLServer在导出里有导出脚本,可以建立表的结构。但是与Oracle里的语法不太一样,而且数据类型有很多出入,这样做也比较麻烦。
    我是把表都先导入到Oracle里(包括数据),然后才修改的表结构。哎,现有的不同数据库的移植还是挺麻烦的。