我不想在删除 table 时出现错误,尽管 table 不存在

I don't want to have the error when I drop a table although the table doesn't exist

我正在使用 Oracle 12c,我不想在删除 table 'CONTINENT' 时出错,以防它不存在。

我这样做了

set echo on
set serveroutput on
alter session set current_schema=WORK_ODI;
set verify off
set pause off
--
WHENEVER SQLERROR CONTINUE  

drop table  CONTINENT;

COMMIT;

EXIT;

但是当table不存在时无法跳过错误,请问如何解决这个问题

即时 DROPCREATE 表不是个好主意。无论如何,如果你真的想这样做,那么你需要(ab)使用 EXECUTE IMMEDIATEPL/SQL 中执行此操作。

例如,您可以编写一个匿名块:

BEGIN
   EXECUTE IMMEDIATE 'DROP TABLE table_name';
EXCEPTION
   WHEN OTHERS THEN
      IF SQLCODE != -942 THEN
         RAISE;
      END IF;
END;
/

附带说明,DROP 是一个 DDL 语句,它将隐式提交,因此无需明确提及 提交.