如果SQL语句中存在表,则从Oracle数据库中删除表。

28 浏览
0 Comments

如果SQL语句中存在表,则从Oracle数据库中删除表。

此问题已有答案

Oracle: If Table Exists

我需要使用一个 SQL 语句来删除一张表,但如果表不存在,它会崩溃。是否可能使用 IF 语句来删除表呢?

s.executeUpdate(\"DROP TABLE employee\");

admin 更改状态以发布 2023年5月22日
0
0 Comments

假设你拥有正确的权限,你可以像下面这样做

declare var_count int;
select count(*) INTO var_count
from all_tables where OWNER = [schema] and table_name = "EMPLOYEE";
if var_count > 0 then
begin
drop table employee;
end  

如果你是在前端代码而不是 PL/SQL 过程中执行此操作,请相应适应。

0
0 Comments

Oracle不支持类似drop table if exists my_table这样的语法,这在MySQL(可能也适用于其他RDBMS)中是合法的语法。

在一个.SQL脚本中,您正在运行DDLDROP和/或CREATE各种对象,Oracle的标准是删除对象,并在对象不存在的情况下忽略错误。如果您希望,您可以编写代码来检查对象是否存在(参见DBA_OBJECTS视图)以仅在存在时删除。

s.executeUpdate中,我猜您是在使用Java?如果是我,我会直接删除并忽略任何不存在的错误。

0