Potentially this is a corrupt database but don't be too hasty. Recursive errors can occur when session and process limits are exceeded.
There is a slim chance you have exceeded the processes limit. How many processes do you currently have in your instance ? Are you close to the limit imposed by the parameter "processes" ? If so, recursive SQL could be failing and presenting the error.
Check parameter processes from sqlplus session (or IDE) with :
show parameter processes
Then check number of processes from v$process :
select count(*) from v$process
Are you close to the threshold ? If you are, increase the processes parameter : eg if your processes limit was 150 increase to 175
alter system set processes=175 scope=spfile
You will have to restart the server for the change to take effect as you cannot dynamically modify the processes parameter.
Otherwise, trace the session and see where the problem actually is :
From your current session issue the following :
alter session set sql_trace=TRUE
Then run your create or replace again
, when it bombs out look at your trace file that is created in the USER_DUMP_DEST directory. Look for ORA errors in there, they may lead to a different problem but it may save a load of time.