Oracle имеет таблицу all_tables
, вы можете запросить это, чтобы увидеть.
Может быть, что-то вроде этого:
declare
v_tab_count number := 0;
begin
select count(*)
into v_tab_count
from all_tables
where table_name = 'MY_TABLE';
if v_tab_count > 0 then
execute immediate 'drop table my_table';
else
dbms_output.put_line('The table isn''t there! maybe you deleted it already?');
end if;
exception
when others then
dbms_output.put_line( sqlerrm);
end if;
/
Я знаю, что ранее прокомментировал чужой пост, что мне не нравится использовать для этого execute immediate
, но я забыл, что это единственный способ выполнить drop table
из PL / SQL.