2
我寫的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'和處理異常,如果它被提出的「沒有找到表」。 – 2011-05-31 04:38:57