Saya mencari kueri yang memungkinkan untuk mengambil info kunci asing (setiap baris: tabel & bidang referensi, tabel & bidang referensi) dari seluruh skema.
Saya telah menemukan ini, tetapi tidak memberikan semua informasi yang saya butuhkan: /programming/4389228/sql-for-oracle-to-check-if-a-constraint-exists
Saat ini saya sedang mengerjakannya dan mungkin berakhir dengan solusi di menit / jam berikutnya. Tetapi jika seseorang sudah memiliki solusi kerja penuh, saya akan senang mengetahuinya :)
oracle
query
foreign-key
Frosty Z
sumber
sumber
Jawaban:
Setelah beberapa "rekayasa balik" pada kueri yang dibuat oleh alat Navicat saat membuka jendela desain meja untuk sebuah tabel (kueri mengambil info tentang kunci asing muncul di jendela sejarah ), berikut adalah solusinya:
sumber
Pengembang SQL dikirimkan dengan laporan yang melakukan hal ini.
Itu melakukannya untuk skema login saja, tetapi ini adalah perbaikan cepat untuk membuatnya mendapatkan setiap FK dalam database - meskipun Anda mungkin ingin menghilangkan skema seperti 'APEX ...' dan 'SYS.'
Ini juga menghilangkan hal-hal seperti, tabel di tempat sampah.
Laporan asli ada di panel Laporan, di laporan kamus data.
Inilah permintaan yang diubah untuk mendapatkan SEMUA FK.
Dan inilah laporannya.
sumber
Sedikit kode rumit yang juga membuang komentar pada cols (berdasarkan kode Frosty):
Untuk membuat output saya menggunakan lebih mudah dibaca
break on TABLE_NAME;
disqlplus
(lihat pertanyaan saya /programming/14998296/print-only-first-unique-value-for-column-that-order-by-in-oracle-sqlplus / ).UPDATE Permintaan yang lebih sederhana yang mengumpulkan daftar tabel yang memiliki referensi FK ke tabel yang diberikan (berguna jika Anda ingin membersihkan kendala setelah mengganti nama tabel):
sumber