Компиляция второй процедуры без выполнения Первая процедура не будет выполнена, так как таблица не была создана.
Вы не можете скомпилировать процедуру, основанную на несуществующих объектах.
Используйте EXEC createtables
перед созданием процедуры e
и не вызывайте createtables
там.
Процедура e
также не будет компилироваться, поскольку вы не используете результаты select * from newcustomer
в качестве курсора или сохраняете результаты в переменных.
EDIT
Вместо процедур вы можете использовать анонимный блок. Поместите в файл следующее и выполните его (например, через SQL * Plus):
Create Table newcustomer As Select * From customer;
Begin
Null; --# Do something with your new table in here.
End;
/