Saya memiliki perasaan bahwa ada beberapa perbedaan antara dua skema Oracle besar yang rumit yang harus identik, jadi memutuskan untuk membuang dan memperbaikinya untuk diselidiki. Saya menemukan sebuah artikel ( http://www.dba-oracle.com/art_builder_get_schema_syntax.htm ) yang memberikan perintah berikut untuk membuang tabel dan definisi indeks.
SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name) FROM USER_TABLES u;
SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name) FROM USER_INDEXES u;
Namun, ketika saya membuang dan menyimpul gulungan output skema, ada perbedaan sepele di hampir setiap baris yang membuat perbedaan tidak berharga. Misalnya nama skema termasuk dalam setiap definisi tabel.
Apakah ada cara yang lebih baik untuk melakukan ini yang akan memberikan data skema paling penting dalam format yang dapat dibandingkan dengan mudah menggunakan alat diff. Saya tertarik pada tabel, indeks, dan pemicu.
Saya menggunakan Oracle Database 10g Enterprise Edition Release 10.2.0.3.0
Anda tidak membutuhkan barang ini.
otn.oracle.com
Oracle memiliki alat gratis yang disebut SQL Developer. ini memiliki skema diff.
sumber
Anda bisa menggunakan TOAD adalah alat generik yang bagus untuk pengembangan Oracle. Ada versi uji coba untuk pengujian. Dari daftar fitur:
Produk lain yang dapat Anda uji adalah OraPowerTools :
Sebagai alternatif gratis, Anda bisa melihat artikel CodeProject ini: Alat Bandingkan Skema untuk Oracle
1 : 1 : http://www.toadsoft.com/toad_oracle.htm
sumber
Kami menggunakan DKGAS 'DBDiff untuk Oracle' , dapat membandingkan seluruh skema atau bagiannya (tabel, urutan, indeks, batasan, hak istimewa, paket, objek, dan data), baik sebagai laporan perbandingan atau sebagai skrip upgrade.
Kami menggunakan yang terakhir sebagai dasar untuk skrip pemutakhiran basis data.
sumber
Jika Anda dapat menjalankan Perl, Anda bisa melihat SQLFairy , yang seharusnya dapat menghasilkan dump skema Anda sebagai SQL. Anda kemudian dapat menggunakan alat pembeda teks standar. Ada juga alat yang akan mengambil dua skema dan menghasilkan perintah ALTER untuk membuatnya identik.
sumber
Jika Anda memiliki uang untuk dibelanjakan, pertimbangkan untuk menggunakan PowerDIFF untuk Oracle: http://www.orbit-db.com . Alat ini membandingkan tabel, indeks, dan pemicu dengan sangat baik dan disertai dengan sejumlah opsi perbandingan untuk menyesuaikan operasi 'berbeda'. Skrip perbedaan total (perintah DDL dan DML) dibuat secara opsional. Anda memerlukan driver ODBC untuk terhubung ke database.
sumber