我写了一个 PL/SQL 脚本(能用,但不够优美):
DECLARE
v_exists NUMBER;
BEGIN
SELECT count(*) INTO v_exists FROM dba_tablespaces WHERE tablespace_name = 'hr_test';
IF v_exists > 0 THEN
BEGIN
EXECUTE IMMEDIATE 'DROP TABLESPACE hr_test INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS';
END;
END IF;
EXECUTE IMMEDIATE 'CREATE TABLESPACE hr_RJ DATAFILE ''E:\hr_test_01.dbf'' SIZE 16M';
END;
有没有一种方法可以在不使用
EXECUTE IMMEDIATE
的情况下重写此脚本?
SELECT count(*)
- 只需运行DROP
并处理引发的“tablespace not found”异常。 - Jeffrey Kemp