2个相同的数据库建立在不同的服务器上,现在我想比较2个数据库中的表字段。例如:
表1在服务器1上,表2在服务器2上。
表1和表2的表名是相同的,都是dba01。
现在想比较他们的字段是否相同,只比较字段名就可以了。请问除了用手工比较外,有没有什么好的办法?谢谢!
表1在服务器1上,表2在服务器2上。
表1和表2的表名是相同的,都是dba01。
现在想比较他们的字段是否相同,只比较字段名就可以了。请问除了用手工比较外,有没有什么好的办法?谢谢!
解决方案 »
- 使用to_char函数别名后,使用group by,报错“标识符无效”
- 关于一个ORACLE 排序的问题, 急!!!!
- 怎样程序实现连接oracle数据源
- 谁有oracle函数大全啊?要全一点的,包含系统函数的最好!
- oracle数据库向应用程序发送消息的问题
- "Oracle 10gR1"中的“R”是什么意思?
- berkeley db的问题
- 有没有高手对sql和oracle在事务中的锁的机制有深刻地了解,最好能有事例做演示
- 存储过程中是不是也有select case?
- 请教大家,触发器无法数据同步的问题
- dbms_standard.client_ip_address
- 关于distinct的问题
select table_nanme,column_name from user_tab_columns
where table_name='DBA01'
minus
select table_nanme,column_name from user_tab_columns
where table_name='DBA01'@dbl2;
即查出来的列,即为服务器1中表存在而服务器2表不存在的列。3 执行以下查询
select table_nanme,column_name from user_tab_columns
where table_name='DBA01'@dbl2;
minus
select table_nanme,column_name from user_tab_columns
where table_name='DBA01'
即查出来的列,即为服务器2中表存在而服务器1表不存在的列。
select table_nanme,column_name from user_tab_columns
where table_name='DBA01'
minus
select table_nanme,column_name from user_tab_columns@dbl2
where table_name='DBA01'; select table_nanme,column_name from user_tab_columns@dbl2
where table_name='DBA01'
minus
select table_nanme,column_name from user_tab_columns
where table_name='DBA01';
Tools->Compare User Objects..
可以比较当前数据库和指定的另一个数据库的对象差异,
全方位比较,很全面!
还有一个问题,假如我想比较2个表的数据量呢?就是count(*)
minus
select * from dba01@dbl2;再
select * from dba01@dbl2
minus
select * from dba01;?????这个貌似没什么必要吧?
前提是你只需要比较列名,不管字段类型,字段长度,精度等等等………
select table_nanme,column_name from user_tab_columns
minus
select table_nanme,column_name from user_tab_columns@dbl2; select table_nanme,column_name from user_tab_columns@dbl2
minus
select table_nanme,column_name from user_tab_columns;如果需要精确匹配,甚至像我们老板那样,连comment都要比对,个么完善该SQL,我本机没有装ORACLE。无法精确指出,大致有:data_type,data_length,还有刻度,精度,记不住。。