Oracle SQL Developer dapat mengekspor DDL melalui Tools -> Database Export...
Ini bekerja dengan sangat baik, tetapi membutuhkan intervensi manual.
Saya tahu DBMS_METADATA.get_ddl()
, tetapi ternyata ekspornya tidak sempurna. Saya mengalami masalah di mana DBMS_METADATA
DDL yang diekspor tidak dapat digunakan tanpa terlebih dahulu memperbaiki masalah seperti jeda di tengah kata kunci, dan lebih buruk. Namun, jika ada yang tahu cara mengekspor DDL melalui DMBS_METADATA
itu dapat berjalan tanpa perbaikan manual, itu akan menjadi solusi yang bagus juga.
Pada dasarnya, saya mencari cara otomatis / skrip untuk mengekspor DDL identik dengan apa yang diekspor melalui cara manual.
Bagaimana saya bisa melakukan itu?
COL
, seperti yang ditunjukkan dalam contoh ini , dan itu akan berhasil.Jawaban:
Nah, jika sqlplus mengacaukan output dbms_metadata.get_ddl Anda, mengapa tidak memilih output dalam CLOB dan menulis CLOB ke filesystem.
misalnya
Ini akan membuat Anda benar DDL, tanpa output menjadi kacau. Satu-satunya hal adalah bahwa skrip akan dibuat pada server DB dan bukan pada klien dari mana Anda memanggil sqlplus.
Script akan disimpan dalam direktori yang ditunjuk oleh entri 'DATA_PUPM_DIR' pada DB Server. yaitu
Terlebih lagi, Anda dapat menambahkan semacam iterasi pada semua tabel / indeks dll dari suatu skema, dan mendapatkan DDL skema lengkap dalam waktu singkat. Saya selalu melakukannya.
sumber
Alasan Anda mengalami masalah
dbms_metadata.get_ddl
adalah karena outputnyaCLOB
yang dapat mencapai 4GB. Secara default, SQL * Plus dan Oracle SQL Developer memotong teks panjang sehingga mereka tidak membuang klien dengan sekumpulan besar teks.Sangat mudah untuk menimpa perilaku ini di SQL * Plus dengan beberapa
SET
perintah dan mendapatkan DDL bersih.Skrip yang Anda butuhkan adalah:
sumber
Transformasi berikut dapat membantu. Saya belum menggunakan metode DBMS_XSLPROCESSOR.CLOB2FILE, tapi saya menggunakannya untuk memigrasi database Oracle dari Solaris ke Linux. Saya tidak bisa menggunakan pompa data karena versi Oracle yang mereka gunakan dan fakta bahwa mereka menggunakan tipe data XML untuk tipe data kolom.
sumber