आपको वास्तव में पीएल/एसक्यूएल में ऐसा नहीं करना चाहिए, रनटाइम पर बनाई गई टेबल आपके डेटा मॉडल में एक दोष का संकेत देगी। यदि आप वास्तव में आश्वस्त हैं कि आपको यह करना ही है तो अस्थायी टेबल पहला। व्यक्तिगत रूप से, मैं पुनर्मूल्यांकन करूंगा कि क्या यह बिल्कुल आवश्यक है।
ऐसा लगता है कि आप LBYL के विपरीत EAFP के लिए जा रहे हैं दृष्टिकोण, जिसका वर्णन इस प्रश्न के कुछ उत्तरों में किया गया है। . मैं तर्क दूंगा कि यह अनावश्यक है। एक टेबल काफी स्थिर जानवर है, आप सिस्टम व्यू का उपयोग कर सकते हैं USER_TABLES यह निर्धारित करने के लिए कि इसे छोड़ने से पहले यह मौजूद है या नहीं।
declare
l_ct number;
begin
-- Determine if the table exists.
select count(*) into l_ct
from user_tables
where table_name = 'THE_TABLE';
-- Drop the table if it exists.
if l_ct = 1 then
execute immediate 'drop table the_table';
end if;
-- Create the new table it either didn-t exist or
-- has been dropped so any exceptions are exceptional.
execute immediate 'create table the_table ( ... )';
end;
/