關於資料庫物件版本比較的指令碼
專案原因導致出現兩個開發環境,主資料庫環境因需求變更每天都需要進行指令碼的修改,而報表伺服器的指令碼也需要同步更新,需求變更很少會同步提醒的;人工判斷太過於麻煩,我又是一個懶人;只好寫個指令碼自動進行識別並加以執行了。
這只是一個簡單的版本比較工具,事實上變更是很難判斷的,例如表中新增了一個欄位,導致順序發生變更,這個時候你很難判斷是新增還是修改的;諸如欄位型別的修改.因此只能去判斷表是否存在,欄位是否存在,進而執行判斷指令碼,產生相應的表指令碼和欄位教本。
事實上Oracle有個DBMS_METADATA資料包提供了DLL指令碼,不過包含了很多儲存引數,對版本比較和物件生成沒有什麼意義。
--CREATE THE CREATE_TABLE SCRIPT, THOUGH WE CAN USE --LIKE select dbms_metadata.get_ddl('TABLE','TABLENAME','USERNAME') from dual; GET THE SQL SCRIPT --BUT IT IS NOT HELPFUL TO COMPARE THE DIFFERENT VERSION SELECT SQLTEXT FROM (B.COLUMN_ID) FROM B WHERE A.TABLE_NAME=B.TABLE_NAME),' ',',') B WHERE A.TABLE_NAME=B.TABLE_NAME),' ',',') B WHERE A.TABLE_NAME=B.TABLE_NAME),' ',',') A.TABLE_NAME=B.TABLE_NAME),' ',',') |
--ADD NEW COLUMN ACCORDING THE LATEST TABLE NAME SELECT 'ALTER TABLE '||TABLE_NAME||' ADD "'||COLUMN_NAME||'" '|| |
--BASED THE COLUMN_NAME AND COLUMN_ID,NEED TO MODIFY THE COLUMN NAME --BUT IN FACT MOST SITUATION IT RESULT IN NEW COLUMN,SO IT IS NO USEFUL .... |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/6517/viewspace-145574/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關閉資料庫比較好的方法資料庫
- EJBQL中關於日期型資料的比較
- Flyway版本化管理資料庫指令碼資料庫指令碼
- 編譯資料庫失效物件指令碼編譯資料庫物件指令碼
- 圖資料庫比較資料庫
- 主流資料庫比較資料庫
- 一個命令,生成資料庫物件的指令碼資料庫物件指令碼
- 關於驗證表中有無資料的方法比較
- 關於Oracle資料庫熱備份指令碼深入剖析Oracle資料庫指令碼
- 基於資料庫的熱備指令碼資料庫指令碼
- 比較兩個mysql資料庫裡面的表是否相同的一個校驗指令碼MySql資料庫指令碼
- 【比較】Oracle不同版本中關於ALTER TABLESPACE的功能演進Oracle
- 庫物件指令碼抽取指令碼物件指令碼
- oracle資料庫兩表資料比較Oracle資料庫
- 1.4.1. 關於Oracle 資料庫版本號Oracle資料庫
- 關聯式資料庫比較:SQLite vs MySQL vs PostgreSQL資料庫SQLiteMySql
- 以MongoDB為例與關係型資料庫比較MongoDB資料庫
- 一個比較好的shell指令碼指令碼
- 資料庫比較 PostgreSQL vs MongoDB資料庫SQLMongoDB
- 幾種常用資料庫比較資料庫
- 比較兩個資料庫的差異資料庫
- MySQL大量資料入庫的效能比較MySql
- informix 資料庫啟動關閉指令碼ORM資料庫指令碼
- 關係型資料庫和非關係型資料庫介紹及優劣勢比較資料庫
- PHP物件的比較PHP物件
- Pythondifflib字串比較指令碼Python字串指令碼
- 轉享:NoSQL 圖資料庫比較SQL資料庫
- 比較SQL資料庫和HadoopSQL資料庫Hadoop
- Oracle資料庫遷移方案比較Oracle資料庫
- 磁碟資料庫與記憶體資料庫的特點比較資料庫記憶體
- shell動態指令碼和pl/sql動態指令碼的比較指令碼SQL
- influxdb與傳統資料庫的比較UX資料庫
- MySQL 一種比較經濟的資料庫MySql資料庫
- 關於Oracle字元型別的比較Oracle字元型別
- 資料庫開發(19)基於物件的資料庫資料庫物件
- iOS 版本號的比較iOS
- 關於9i RMAN 增量備份中的資料塊SCN比較
- 關於Go tools的比較有用的flagsGo