Я думаю, вы можете использовать такой способ:
begin
execute immediate 'Drop table emp';
exception when others then
begin
if ( sqlcode = -942 ) then
execute immediate 'Create table emp(id int,name varchar2(50),surname varchar2(50))';
end if;
end;
end;
при запуске удаляет таблицу, если существует, если не существует, удаляет таблицу.
У нас есть некоторые имена исключений, специфичные для кодов ошибок, вместо использования обобщенного OTHERS
, возвращающегося из ключевого слова sqlcode
, такого как:
ZERO_DIVIDE(-1476)
, TOO_MANY_ROWS(-1422)
, VALUE_ERROR(-6502)
, INVALID_NUMBER(-1722)
.. и т. Д.
Вы можете ссылаться Обработка исключений и связанные с ними коды