1

我已经试用了一个名为 TOYS 的工具。我发现它是免费的,但不幸的是它没有用。

然后,我尝试了“RED-Gate Schema Compare for Oracle”,但它使用该技术来删除和重新创建表,而我只需要使用新添加/删除的列来更改表。

非常感谢任何帮助

谢谢

4

1 回答 1

3

从 Oracle 11g 开始,您可以使用dbms_metadata_diff包并专门compare_alter()用于比较两个模式对象的元数据:

 Schema #1 HR

 create table tb_test(
    col number
  )


 Schema #2 HR2

  create table tb_test(
    col_1 number
  )


 select dbms_metadata_diff.compare_alter( 'TABLE'    -- schema object type
                                        , 'TB_TEST'  -- object name
                                        , 'TB_TEST'  -- object name
                                        , 'HR'       -- by default current schema
                                        , 'HR2'
                                        ) as res
  from dual;

结果:

RES                                                                            
-------------------------------------------------
ALTER TABLE "HR"."TB_TEST" ADD ("COL_1" NUMBER);
ALTER TABLE "HR"."TB_TEST" DROP ("COL");
于 2013-09-19T13:36:08.357 回答