SQL对比两个Oracle数据库表的差异

本文介绍了一种实用的方法,用于比较生产环境与开发环境数据库表结构的差异。通过将生产环境的数据库表结构导出并在测试库中重建,执行特定的SQL语句来找出两者的不同之处,包括表名、字段名、数据类型及长度等。

生产上的版本迭代更新,需要对比生产上的数据库表结构和开发环境的差异。把生产上面的数据库表结构导出,在测试库同一实例下建库,执行sql语句对比:

select *
	from (select * from all_tab_cols where owner = 'DB_A'
--  	and table_name like 'AA_%'
	) t1
	full join (select * from all_tab_cols where owner = 'DB_B'
--      and table_name like 'BB_%'
    ) t2 
on t1.table_name = t2.table_name
and t1.column_name = t2.column_name
where t1.table_name is null
    or t2.table_name is null
    or t1.data_type <> t2.data_type
    or t1.data_length <> t2.data_length
order by t1.table_name, t1.column_name, t2.table_name, t2.column_name;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值