如何在oracle中确定表是否存在? 在脚本文件上,我只想删除一个表。
谢谢!
答案 0 :(得分:2)
http://www.dba-oracle.com/bk_check_table_exists.htm
这里给出了各种解决方案。最简单的:
SQL> desc mytable
或者只是尝试删除并捕获异常:
begin
execute immediate 'drop table TABLE1';
exception when others then null;
end;
答案 1 :(得分:1)
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
,但我忘记了这是从PL / SQL执行drop table
的唯一方法。
答案 2 :(得分:1)
您可以向USER_TABLES查询TABLE_NAME ='YOUR_TABLE_NAME': - )