You cannot alter a temporary table to change its data duration.(drop and recreate)
create table employee(
emp_no integer primary key
);
CREATE GLOBAL TEMPORARY TABLE temp_emp
AS SELECT * FROM employee;
SQL> ALTER TABLE temp_emp ON COMMIT PRESERVE ROWS;
ALTER TABLE temp_emp ON COMMIT PRESERVE ROWS
*
ERROR at line 1:
ORA-01735: invalid ALTER TABLE option