[20220610]對比表結構的不同.txt
[20220610]對比表結構的不同.txt
--//重複測試:
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 '), '/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"
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2900135/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 表結構對比版本
- 如何比較兩個資料庫表結構的不同資料庫
- MySQL 對比資料庫表結構MySql資料庫
- 使用PL/SQL工具比對錶結構,同步表結構SQL
- MYSQL建立多張表,相同表結構,不同表名MySql
- Oracle、MySQL常見表結構變更語句對比OracleMySql
- 不同表結構或者不同資料型別之間的集合操作資料型別
- 比較兩個的表結構差異
- 不同的連線方式效能對比!
- Java不同資料結構記憶體消耗比較Java資料結構記憶體
- 【資料結構】棧和佇列的總結對比資料結構佇列
- Redis 不同插入方法的效能對比Redis
- 不同平臺上mysql的對比(轉)MySql
- HBase的表結構你設計得不對!
- HBase 的結構與表的對應關係
- [20220610]tmux記錄操作內容.txtUX
- PHP對比兩個資料中不同的元素PHP
- 【Golang】基於beego/orm實現相同表結構不同表名的分表方法實現GolangORM
- [20190402]對比_mutex_wait_scheme不同模式cpu消耗.txtMutexAIScheme模式
- MySQL不同庫名相同表結構實現主從配置MySql
- shell裡呼叫sqlplus 使用不同linesize 對比表現SQL
- 不同Framework下StringBuilder和String的效能對比,及不同Framework效能比(附Demo)FrameworkUI
- codemirror diff-match-match 不同裝置、不同裝置狀態下的對比結果不穩定
- PostgreSQL 資料庫結構(DDL)比對工具 pgquarrelSQL資料庫
- 不同環境Odoo執行速度對比Odoo
- 比較兩個資料庫的表結構差異(轉)資料庫
- 分割槽表的不同操作對索引的影響索引
- awrddrpt.sql --生成不同時間內的對比統計報表--bug的修復SQL
- 關於goldengate 對源表和目的表的表結構一致的定義Go
- 報表工具對比之潤乾報表與銳浪報表對比
- MySQL對比清除不必要的表MySql
- Alter修改表結構對資料儲存的影響PP
- 介面測試返回結構對比實現思路記錄
- [20181203]drop table後如何獲得表結構.txt
- Oracle表結構轉換SqlSERVER表結構 指令碼OracleSQLServer指令碼
- 獲取某張表的表結構
- goldengate針對不同表名及列名的複製Go
- 常用PHP框架功能對比表PHP框架