Вы не можете сделать DDL в PL / SQL-блоке подобным образом.Вам нужно будет использовать команду «выполнить немедленно».
Вам нужно будет сделать это следующим образом
CREATE OR REPLACE PROCEDURE p_createLocaltable
IS
table_already_exist EXCEPTION;
PRAGMA EXCEPTION_INIT (table_already_exist, -00955);
BEGIN
execute immediate 'create table local_objects as select * from all_objects where 1=0';
EXCEPTION
when table_already_exist then
DBMS_OUTPUT.put_line('Table already exists , does not need to recreate it');
END;
Проверьте страницу orafaq на этой странице