Назад | Перейти на главную страницу

Ошибка Oracle при входе в базу данных

Когда я пытаюсь войти в свою базу данных с конкретным пользователем, я получаю это сообщение. Ниже приведен журнал предупреждений. Я могу войти в систему как система. Кто-нибудь знает, как выяснить, что вызывает это?

Заранее спасибо за помощь.

----- Error Stack Dump -----
ORA-00604: error occurred at recursive SQL level 1
ORA-01438: value larger than specified precision allowed for this column
ORA-06512: at line 2

Oracle 10g OEL 5.5

Поскольку это происходит при входе в систему, это почти наверняка является результатом ошибки в триггере входа в систему. Предположительно, в вашей системе определено очень мало триггеров входа в систему - вы можете получить список всех триггеров входа в систему.

SELECT owner, trigger_name
  FROM dba_triggers
 WHERE triggering_event = 'LOGON'

Если вы посмотрите на код триггера, вы должны увидеть ошибку, при которой триггер пытается заполнить столбец значением, превышающим допустимую точность. Я предполагаю, что вы используете триггеры входа в систему для записи в какую-то настраиваемую таблицу аудита и что для одного из столбцов в настраиваемой таблице аудита необходимо повысить точность.