oracle 脚本对比,Oracle不同数据库间的对比分析脚本

该内容涉及一个Oracle SQL脚本,用于比较两个不同数据库实例间的对象(如表)定义差异。用户需要输入对象属主、两个实例的数据库连接名称,脚本将输出表名、列名、数据类型、长度、精度、是否可空等信息,帮助用户识别两者之间的结构区别。
摘要由CSDN通过智能技术生成

SET PAGESIZE 60

SET LINESIZE 110

SET VERIFY OFF

SET FEEDBACK OFF

SET PAUSE OFF

ACCEPT obj_owner PROMPT "对象属主(模式): "

ACCEPT inst_1_dblink PROMPT "第一个实例的数据库联接名称 (包括 @):"

ACCEPT inst_2_dblink PROMPT "第一个实例的数据库联接名称 (包括 @):"

clear breaks

TTITLE off

SET HEADING off

COLUMN datetime noprint new_value datetime

COLUMN inst_code1_name noprint new_value inst_code1_name

COLUMN inst_code2_name noprint new_value inst_code2_name

SELECT TO_CHAR(SYSDATE,"MM/DD/YY") datetime FROM DUAL

/

SELECT global_name inst_code1_name FROM global_name&inst_1_dblink

/

SELECT global_name inst_code2_name FROM global_name&inst_2_dblink

/

SET feedback ON

SET HEADING ON

TTITLE COL 30 "对象比较结果报告单" -

COL 63 "日期: " datetime -

SKIP 1 COL 68 "页: " sql.pno -

SKIP 1 COL 10 "属主: " obj_owner -

SKIP 1 CENTER "&inst_code1_name 和 &inst_code2_name 之间表定义的差别明细" -

SKIP 2

COLUMN table_name format a25 HEADING "表名";

COLUMN column_name format a25 HEADING "列名";

COLUMN data_type format a8 HEADING "数据类型";

COLUMN data_length format ArrayArrayArray HEADING "长度";

COLUMN data_precision format ArrayArrayArray HEADING "精度";

COLUMN nullable format a5 HEADING "是否可空";

COLUMN inst_code format a15 HEADING "实例";

SELECT "&inst_code1_name" inst_code, table_name, column_name, data_type, data_length, data_precision, nullable

FROM all_tab_COLUMNs&inst_1_dblink

WHERE owner = UPPER("&obj_owner")

AND table_name in (SELECT table_name FROM all_tables&inst_2_dblink

WHERE owner = UPPER("&obj_owner"))

MINUS

SELECT "&inst_code1_name" inst_code, table_name, column_name, data_type, data_length, data_precision, nullable

FROM all_tab_columns&inst_2_dblink

WHERE owner = UPPER("&obj_owner")

UNION

SELECT "&inst_code2_name" inst_code, table_name, column_name, data_type, data_length, data_precision, nullable

FROM all_tab_COLUMNs&inst_2_dblink

WHERE owner = UPPER("&obj_owner")

AND table_name in (SELECT table_name FROM all_tables&inst_1_dblink

WHERE owner = UPPER("&obj_owner"))

MINUS

SELECT "&inst_code2_name" inst_code, table_name, column_name, data_type, data_length, data_precision, nullable

FROM all_tab_columns&inst_1_dblink

WHERE owner = UPPER("&obj_owner")

ORDER BY 2, 3

/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值