Потенциально это поврежденная база данных, но не спешите. При превышении лимитов сеансов и процессов могут возникать рекурсивные ошибки.
Существует небольшая вероятность того, что вы превысили лимит процессов. Сколько процессов у вас сейчас в вашем экземпляре? Вы близки к пределу, установленному параметром «процессы»? Если это так, рекурсивный SQL может давать сбой и отображать ошибку.
Проверьте параметр обрабатывает из сеанса sqlplus (или IDE) с помощью:
show parameter processes
Затем проверьте количество процессов из v $ process:
select count(*) from v$process
Вы близко к порогу? Если да, увеличьте параметр процессов : например, если лимит ваших процессов был 150, увеличьте до 175
alter system set processes=175 scope=spfile
Вам нужно будет перезапустить сервер, чтобы изменения вступили в силу, поскольку вы не можете динамически изменять параметр процессов.
В противном случае проследите сеанс и посмотрите, где на самом деле проблема:
Из вашего текущего сеанса введите следующее:
alter session set sql_trace=TRUE
Затем запустите create or replace again
, когда он разорвется, посмотрите на файл трассировки, созданный в каталоге USER_DUMP_DEST. Ищите там ошибки ORA, они могут привести к другой проблеме, но это может сэкономить массу времени.