Opravdu byste to neměli dělat v PL/SQL, tabulky vytvořené za běhu by naznačovaly chybu ve vašem datovém modelu. Pokud jste opravdu přesvědčeni, že to absolutně musíte udělat, prozkoumejte dočasné tabulky První. Osobně bych přehodnotil, zda je to vůbec nutné.
Zdá se, že se chystáte na EAFP na rozdíl od LBYL přístup, který je popsán v několika odpovědích na tuto otázku . Řekl bych, že je to zbytečné. Tabulka je poměrně statická bestie, můžete použít systémové zobrazení USER_TABLES před jeho odhozením zjistit, zda existuje.
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;
/