虽然桌子不存在,但我不想在丢桌时出错

时间:2016-02-01 11:03:30

标签: sql oracle sqlplus

我正在使用Oracle 12c,在放下我的桌子时出现错误我并不感兴趣' 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;

但是当表格不存在时,它会删除错误,如何解决此问题

1 个答案:

答案 0 :(得分:4)

动态 DROP CREATE 表格不是一个坏主意。无论如何,如果你真的想这样做,那么你需要(ab)使用 EXECUTE IMMEDIATE PL / SQL 中执行此操作。

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

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

另一方面, DROP 是一个 DDL 语句,它将隐式提交,因此无需明确提及 COMMIT