Difference between revisions of "Oracle/Drop if exists"
Jump to navigation
Jump to search
(New page: There is no special syntax for this case, so we have to use some workarounds. '''The following PL/SQL statement will try to drop a table and ignore the exception, if one occurs:''' <sour...) |
|||
| Line 25: | Line 25: | ||
The last statement will only work for tables, it has to be modified to work for functions, views, procedures etc. since we make a select on ''user_tables''. The first example should work for all object types. | The last statement will only work for tables, it has to be modified to work for functions, views, procedures etc. since we make a select on ''user_tables''. The first example should work for all object types. | ||
[[Category:Oracle]] | |||
Latest revision as of 09:09, 8 December 2009
There is no special syntax for this case, so we have to use some workarounds.
The following PL/SQL statement will try to drop a table and ignore the exception, if one occurs:
Begin
execute immediate 'drop table my_table';
Exception when others then null;
End;
/
This statement checks if an object with this name exists and drops it, if it exists:
DECLARE exists PLS_INTEGER;
BEGIN
select count(*) into exists from user_tables where table_name = 'my_table';
if exists = 1 then
execute immediate 'drop table my_table';
end if;
END;
/
The last statement will only work for tables, it has to be modified to work for functions, views, procedures etc. since we make a select on user_tables. The first example should work for all object types.