IF NOT EXISTS
SQL सर्वर में उपलब्ध सिंटैक्स, Oracle में उपलब्ध नहीं है।
सामान्य तौर पर, Oracle स्क्रिप्ट केवल CREATE
. को निष्पादित करती हैं कथन, और यदि वस्तु पहले से मौजूद है, तो आपको यह इंगित करने वाली एक त्रुटि मिलेगी, जिसे आप अनदेखा कर सकते हैं। सभी मानक Oracle परिनियोजन स्क्रिप्ट यही करते हैं।
हालांकि, अगर आप वास्तव में अस्तित्व की जांच करना चाहते हैं, और केवल तभी निष्पादित करें जब ऑब्जेक्ट मौजूद न हो, जिससे त्रुटि से बचा जा सके, आप PL/SQL
को कोड कर सकते हैं खंड मैथा। एक SQL
लिखें जो उपयोगकर्ता के अस्तित्व की जांच करता है, और यदि वह मौजूद नहीं है, तो EXECUTE IMMEDIATE
का उपयोग करें करने के लिए CREATE USER
PL/SQL
. से ब्लॉक करें।
ऐसे PL/SQL ब्लॉक का एक उदाहरण हो सकता है:
declare
userexist integer;
begin
select count(*) into userexist from dba_users where username='SMITH';
if (userexist = 0) then
execute immediate 'create user smith identified by smith';
end if;
end;
/