Saya perlu mendapatkan nama kolom kunci utama.
Di input, saya hanya memiliki nama tabel.
SELECT cols.table_name, cols.column_name, cols.position, cons.status, cons.owner
FROM all_constraints cons, all_cons_columns cols
WHERE cols.table_name = 'TABLE_NAME'
AND cons.constraint_type = 'P'
AND cons.constraint_name = cols.constraint_name
AND cons.owner = cols.owner
ORDER BY cols.table_name, cols.position;
Pastikan 'TABLE_NAME' dalam huruf besar karena Oracle menyimpan nama tabel dalam huruf besar.
q
.Sama seperti jawaban dari 'Richie' tapi sedikit lebih ringkas.
Kueri untuk batasan pengguna saja
Kueri untuk semua batasan
sumber
user_constraints
denganall_constraints
.SELECT owner, column_name, position FROM all_cons_columns WHERE (owner, constraint_name) in (SELECT owner, constraint_name FROM all_constraints WHERE UPPER(table_name) = UPPER('&tableName') AND CONSTRAINT_TYPE = 'P') order by owner, position;
(Ini akan mencantumkan kunci utama dan kemudian)
(Ini akan memberi Anda kolom, di sini PK_XYZ adalah nama kunci utama)
sumber
Coba Kode Ini Di sini saya membuat tabel untuk mendapatkan kolom kunci primer di oracle yang disebut test dan kemudian query
sumber
Simpan skrip berikut sebagai sesuatu seperti findPK.sql.
Kemudian bisa dipanggil menggunakan
sumber