两张表都有多个字段,如何快速比较两张表的数据类型有什么不同,当然是指字段名称相同的比较~

解决方案 »

  1.   

    根据数据字典来比较select a.column_name,a.data_type,b.data_type
    from user_tab_cols a,user_tab_cols b
    where a.column_name=b.column_name
      and a.table_name='XXX' and b.table_name='XXX'
      

  2.   

    数据类型不同有很多种情况呀
    比如说长度不同 精度不同 运行空或者非空……
    你可以查看all_tab_columns里面的字段
    应该你需要的都可以找到举个例子吧
    比如说我要查询用户SCOTT的DEPT表中列的相关情况
    SQL> col data_length format 99999
    SQL> select column_name,data_type,data_length from all_tab_columns
      2  where owner='SCOTT' and table_name='DEPT';COLUMN_NAME          DATA_TYPE            DATA_LENGTH
    -------------------- -------------------- -----------
    DEPTNO               NUMBER                        22
    DNAME                VARCHAR2                      14
    LOC                  VARCHAR2                      13
      

  3.   

    select a.column_name,a.data_type,a.data_length,b.column_name,b.data_type,b.data_length from
    (select table_name,column_name,data_type,data_length from ALL_TAB_COLUMNS where owner = 'SCOTT' and table_name = 'TB') a,
    (select table_name,column_name,data_type,data_length from ALL_TAB_COLUMNS where owner = 'SCOTT' and table_name = 'TB2') b
    where a.column_name = b.column_name and (a.data_type <> b.data_type or a.data_length <> b.data_length);