oracle对比两个表的结构,oracle 比较两个用户表结构的区别。

CREATE OR REPLACE PROCEDURECOMPARE_UC_TABLESAS

BEGIN

execute immediate 'delete from sdu_tables';execute immediate 'delete from bmp_tables';execute immediate 'delete from uc_table_different';execute immediate 'insert into sdu_tables select

A.Table_Name,

A.column_name ,A.data_type ,A.data_length ,A.data_precision ,

A.Data_Scale ,A.nullable ,Default_value(a.OWNER,a.Table_Name,a.column_name) as Data_default

from

dba_tab_columns A

where

A.owner=''SDU''and SUBSTR(TABLE_NAME,1,4) !=''BIN$''';execute immediate 'insert into bmp_tables select

A.Table_Name,

A.column_name ,A.data_type ,A.data_length ,A.data_precision ,

A.Data_Scale ,A.nullable ,Default_value(a.OWNER,a.Table_Name,a.column_name) as Data_default

from

dba_tab_columns A

where

A.owner=''BMP''and SUBSTR(TABLE_NAME,1,4) !=''BIN$''';DELETE FROM sdu_tables WHERE TABLE_NAME IN (SELECT TABLE_NAME FROMESPACE_TABLE);DELETE FROM bmp_tables WHERE TABLE_NAME IN (SELECT TABLE_NAME FROMESPACE_TABLE);DELETE FROM sdu_tables S WHERE EXISTS (SELECT 1 FROM ESPACE_COLUMN E WHERE E.TABLE_NAME = S.TABLE_NAME AND E.COLUMN_NAME =S.COLUMN_NAME);DELETE FROM bmp_tables B WHERE EXISTS (SELECT 1 FROM ESPACE_COLUMN E WHERE E.TABLE_NAME = B.TABLE_NAME AND E.COLUMN_NAME =B.COLUMN_NAME);commit;execute immediate 'insert into uc_table_different select *

from (select s.Table_Name s_Table_Name,

b.Table_Name b_Table_Name,

s.column_name s_column_name,

b.column_name b_column_name,

s.data_type s_data_type,

b.data_type b_data_type,

s.data_length s_data_length,

b.data_length b_data_length,

s.data_precision s_data_precision,

b.data_precision b_data_precision,

s.Data_Scale s_Data_Scale,

b.Data_Scale b_Data_Scale,

s.nullable s_nullable,

b.nullable b_nullable,

s.Data_default s_Data_default,

b.Data_default b_Data_default

from sdu_tables s

full join bmp_tables b on s.Table_Name = b.Table_Name

and s.column_name = b.column_name)

where s_column_name is null

or b_column_name is null

or s_data_type != b_data_type

or s_data_length != b_data_length

or s_data_precision != b_data_precision

or s_Data_Scale != b_Data_Scale

or s_nullable != b_nullable

or s_Data_default != b_Data_default';commit;ENDCOMPARE_UC_TABLES;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值