我正在使用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;
但是当表格不存在时,它会删除错误,如何解决此问题
答案 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