【发布时间】:2017-02-07 17:59:57
【问题描述】:
只有在表存在时才需要删除表,可以使用 plsql 块来完成
BEGIN
EXECUTE IMMEDIATE 'DROP TABLE <table_name>;
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE != -942 THEN
RAISE;
END IF;
END
但在我的情况下,表名具有 sysdate (02062017) 例如 table001_02072017,我需要使用 sysdate-1 删除所有此类表。 我该怎么做?
【问题讨论】:
-
为什么只有存在的表才需要删除它?如果你删除了一个不存在的表,你认为会发生什么?
-
我需要删除表,如果它存在。
-
这不能回答我的问题。为什么只有当它存在时才需要删除它?如果你删除一个不存在的表,你认为会发生什么坏事?
-
如果我删除一个不存在的表,它会报错。我只是在避免这种错误处理。
-
那个错误不需要处理!您的所有处理都可以继续进行而不会产生任何不良影响。这就是我一直想告诉你的。
标签: sql oracle plsql oracle11g oracle-sqldeveloper