我们系统升级,少量(几百个里面有几十个)表结构做了调整,
有什么比较好的办法比较出两个数据库哪些表结构做了变动,
新增删除了哪些表?

解决方案 »

  1.   

    1、比较两个库新增删除的表,这个应该不难,查出两个库的所有表,一比较,不就知道了。
    2、至于比较两个库表之间表结构的改动,这个就比较麻烦了,下面这段程序是比较两个之间字段相同的,得到相同的跟原表字段数目一比,如果少或多都表明字段发生了变化。至少其他的数据类型变化,原理一样。这只是比较两个表的,要比较两个库的所有表,就应该写个过程,加上循环,把表当作变量传递去比较了。思路是样,你看看是否有帮助吧。
    SELECT a.column_name,b.column_name
    FROM (select COLUMN_NAME,DATA_TYPE,DATA_PRECISION,DATA_SCALE,NULLABLE 
    from user_tab_columns 
    where table_name ='EMP') a,
    (select COLUMN_NAME,DATA_TYPE,DATA_PRECISION,DATA_SCALE,NULLABLE 
    from user_tab_columns 
    where table_name ='EMP1') b
    WHERE a.column_name=b.column_name
      

  2.   

    1:自己抓取见表语句进行比较(灵活性好)
    2:PLSQL DEV工具有个菜单可以比较两个SCHEMA的不同的