Semua metadata tentang kolom di Oracle Database dapat diakses menggunakan salah satu tampilan berikut.
pengguna_tab_kolom; -- Untuk semua tabel yang dimiliki oleh pengguna
semua_tab_kolom; -- Untuk semua tabel yang dapat diakses oleh pengguna
dba_tab_cols; -- Untuk semua tabel dalam Database.
Jadi, jika Anda mencari kolom seperti ADD_TMS di Tabel SCOTT.EMP dan menambahkan kolom hanya jika tidak ada, Kode PL/SQL akan berada di sepanjang baris ini..
DECLARE
v_column_exists number := 0;
BEGIN
Select count(*) into v_column_exists
from user_tab_cols
where upper(column_name) = 'ADD_TMS'
and upper(table_name) = 'EMP';
--and owner = 'SCOTT --*might be required if you are using all/dba views
if (v_column_exists = 0) then
execute immediate 'alter table emp add (ADD_TMS date)';
end if;
end;
/
Jika Anda berencana untuk menjalankan ini sebagai skrip (bukan bagian dari prosedur), cara termudah adalah memasukkan perintah alter dalam skrip dan melihat kesalahan di akhir skrip, dengan asumsi Anda tidak memiliki Begin-End untuk naskahnya..
Jika Anda memiliki file1.sql
alter table t1 add col1 date;
alter table t1 add col2 date;
alter table t1 add col3 date;
Dan col2 hadir, ketika skrip dijalankan, dua kolom lainnya akan ditambahkan ke tabel dan log akan menampilkan kesalahan yang mengatakan "col2" sudah ada, jadi Anda akan baik-baik saja.