Abd*_*him 1 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;
Run Code Online (Sandbox Code Playgroud)
但是当表不存在时它不会跳过该错误,请问该如何解决
快速删除和创建表是一个坏主意。无论如何,如果您确实要这样做,则需要(ab)使用EXECUTE IMMEDIATE在PL / SQL中执行此操作。
例如,您可以编写一个匿名块:
BEGIN
EXECUTE IMMEDIATE 'DROP TABLE table_name';
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE != -942 THEN
RAISE;
END IF;
END;
/
Run Code Online (Sandbox Code Playgroud)
附带说明,DROP是将隐式提交的DDL语句,因此无需显式提及COMMIT。
| 归档时间: |
|
| 查看次数: |
1889 次 |
| 最近记录: |