标签:
在工作中需要完成这么一个需求:比较两个表的表结构是否形相同,并找出差异.比较两个表中的数据是否相同,并找出差异数据?为了思考问题简单和方便测试,首先先建立两个测试表,并插入一些测试数据吧,sql如下:
create table t_A ( id VARCHAR2(36) not null, name VARCHAR2(100), age NUMBER, sex VARCHAR2(2) ); insert into t_A (id, name, age, sex) values ('1', '1', 1, '1'); insert into t_A (id, name, age, sex) values ('2', '2', 2, '2'); commit; create table t_B ( id VARCHAR2(36) not null, name VARCHAR2(100), age NUMBER, clazz VARCHAR2(36) ); insert into t_B (id, name, age, clazz) values ('1', '1', 1, '1'); insert into t_B (id, name, age, clazz) values ('2', '2', 1, '3'); insert into t_B (id, name, age, clazz) values ('3', '3', 3, '3'); commit;
/*1.比较表结构 */ (select column_name from user_tab_columns where table_name = 'T_A' minus select column_name from user_tab_columns where table_name = 'T_B') union (select column_name from user_tab_columns where table_name = 'T_B' minus select column_name from user_tab_columns where table_name = 'T_A'); /* 2.比较表数据 */ (select * from t_A minus select * from t_B) union (select * from t_B minus select * from t_A)
看看sql的运行效果吧:
表t_A结构及数据:
表t_B结构及数据:
表结构差异:
数据差异:
标签:
原文地址:http://blog.csdn.net/li2008xue2008ling/article/details/42296099