[20220610]对比表结构的不同.txt --//https://connor-mcdonald.com/2022/06/08/comparing-two-database-objects-for-differences/,重复测试: 1.环境: SCOTT@book> @ ver1 PORT_STRING VERSION BANNER ------------------------------ -------------- -------------------------------------------------------------------------------- x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production 2.测试: --//create table emp as select * from scott.emp; create table emp2 as select * from scott.emp; --//But now I'll make some changes to EMP2 so that it is now slightly different to EMP. alter table emp2 pctfree 20; alter table emp2 add newcol number; 3.测试: SCOTT@book> select dbms_metadata_diff.compare_alter('TABLE','EMP','EMP2') from dual; DBMS_METADATA_DIFF.COMPARE_ALTER('TABLE','EMP','EMP2') -------------------------------------------------------- ALTER TABLE "SCOTT"."EMP" ADD ("NEWCOL" NUMBER) ALTER TABLE "SCOTT"."EMP" DROP CONSTRAINT "PK_EMP" ALTER TABLE "SCOTT"."EMP" DROP CONSTRAINT "FK_DEPTNO" ALTER TABLE "SCOTT"."EMP" PCTFREE 20 ALTER TABLE "SCOTT"."EMP" RENAME TO "EMP2" --//输出实际上clob类型的信息. --//dbms_metadata_diff.compare_alter还支持schema以及dblink. SCOTT@book> @ desc_proc sys dbms_metadata_diff compare_alter INPUT OWNER PACKAGE_NAME OBJECT_NAME sample : @desc_proc sys dbms_stats gather_%_stats OWNER PACKAGE_NAME OBJECT_NAME SEQUENCE ARGUMENT_NAME DATA_TYPE IN_OUT DEFAULTED ----- ------------------ ------------- -------- -------------- --------- --------- ---------- SYS DBMS_METADATA_DIFF COMPARE_ALTER 1 CLOB OUT N 2 OBJECT_TYPE VARCHAR2 IN N 3 NAME1 VARCHAR2 IN N 4 NAME2 VARCHAR2 IN N 5 SCHEMA1 VARCHAR2 IN Y 6 SCHEMA2 VARCHAR2 IN Y 7 NETWORK_LINK1 VARCHAR2 IN Y 8 NETWORK_LINK2 VARCHAR2 IN Y 8 rows selected. 4.作者还提供一个生成结尾分号的输出,利用dbms_metadata_diff.compare_alter_xml: with t as ( select dbms_metadata_diff.compare_alter_xml('TABLE','EMP','EMP2') xml from dual ) select xt.txt||';' from t, xmltable(xmlnamespaces(default 'http://xmlns.oracle.com/ku'), '/ALTER_XML/ALTER_LIST/ALTER_LIST_ITEM/SQL_LIST/SQL_LIST_ITEM' passing xmltype(t.xml) columns txt varchar2(255) path 'TEXT' ) xt; XT.TXT||';' ------------------------------------------------------- ALTER TABLE "SCOTT"."EMP" ADD ("NEWCOL" NUMBER); ALTER TABLE "SCOTT"."EMP" DROP CONSTRAINT "PK_EMP"; ALTER TABLE "SCOTT"."EMP" DROP CONSTRAINT "FK_DEPTNO"; ALTER TABLE "SCOTT"."EMP" PCTFREE 20; ALTER TABLE "SCOTT"."EMP" RENAME TO "EMP2"; --//真心话,XML格式不熟悉,捣腾这些有点烦. This can be a little annoying because you might want to omit some of the commands, augment them in some way, or run them one at a time, and this would then mean digging around within the CLOB with INSTR and SUBSTR functions to locate each statement. 这可能有点烦人,因为您可能想要省略一些命令,以某种方式增强它们,或者一次运行一个命令,这将意味着在CLOB中挖掘instr和 SUBSTR函数来定位每个语句。 --//自己尝试看看,简单一点直接使用replace: with t as (select dbms_metadata_diff.compare_alter('TABLE','EMP','EMP2' ) c400 from dual) select replace(c400,chr(10),';'||chr(10)) from t; REPLACE(C400,CHR(10),';'||CHR(10)) -------------------------------------------------------- ALTER TABLE "SCOTT"."EMP" ADD ("NEWCOL" NUMBER); ALTER TABLE "SCOTT"."EMP" DROP CONSTRAINT "PK_EMP"; ALTER TABLE "SCOTT"."EMP" DROP CONSTRAINT "FK_DEPTNO"; ALTER TABLE "SCOTT"."EMP" PCTFREE 20; ALTER TABLE "SCOTT"."EMP" RENAME TO "EMP2"
[20220610]对比表结构的不同.txt
来源:这里教程网
时间:2026-03-03 17:41:10
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- oracle 11g 系统审计功能
oracle 11g 系统审计功能
26-03-03 - 19c初始化数据库提示端口1521占用,但查不到占用的程序[DBT-06103]
- Windows oracle 11g rman备份恢复到linux系统
Windows oracle 11g rman备份恢复到linux系统
26-03-03 - 快手Q1:一面向阳而生,一面难寻光亮
快手Q1:一面向阳而生,一面难寻光亮
26-03-03 - Oracle的OEM enterprise manager mail notificatio 邮件告警通知设置
- [重庆思庄每日技术分享]-ORA-1142 signalled during: ALTER DATABASE END BACKUP
- oracle 专用服务器连接和共享服务器连接
oracle 专用服务器连接和共享服务器连接
26-03-03 - 如何同时查询韵达的快递单号?有上千单
如何同时查询韵达的快递单号?有上千单
26-03-03 - 语音合成商业化:科大讯飞向左,魔音工坊向右
语音合成商业化:科大讯飞向左,魔音工坊向右
26-03-03 - 自动驾驶卷到了卡车领域?
自动驾驶卷到了卡车领域?
26-03-03
