Oracle डेटाबेस में कॉलम के बारे में सभी मेटाडेटा निम्न में से किसी एक दृश्य का उपयोग करके पहुँचा जा सकता है।
user_tab_cols; -- उपयोगकर्ता के स्वामित्व वाली सभी तालिकाओं के लिए
all_tab_cols; -- उपयोगकर्ता के लिए सुलभ सभी तालिकाओं के लिए
dba_tab_cols; -- डेटाबेस में सभी तालिकाओं के लिए।
इसलिए, यदि आप SCOTT.EMP तालिका में ADD_TMS जैसे कॉलम की तलाश कर रहे हैं और कॉलम केवल तभी जोड़ें जब वह मौजूद न हो, तो PL/SQL कोड इन पंक्तियों के साथ होगा..
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;
/
यदि आप इसे एक स्क्रिप्ट के रूप में चलाने की योजना बना रहे हैं (प्रक्रिया का हिस्सा नहीं), तो सबसे आसान तरीका यह होगा कि स्क्रिप्ट में परिवर्तन कमांड को शामिल करें और स्क्रिप्ट के अंत में त्रुटियों को देखें, यह मानते हुए कि आपके पास इसके लिए कोई शुरुआत-अंत नहीं है। स्क्रिप्ट..
अगर आपके पास file1.sql
. हैalter table t1 add col1 date;
alter table t1 add col2 date;
alter table t1 add col3 date;
और col2 मौजूद है, जब स्क्रिप्ट चलाई जाती है, तो अन्य दो कॉलम तालिका में जोड़ दिए जाएंगे और लॉग यह कहते हुए त्रुटि दिखाएगा कि "col2" पहले से मौजूद है, इसलिए आपको ठीक होना चाहिए।