当我尝试以特定用户身份登录数据库时,我收到此消息。以下是来自警报日志。我可以以系统身份正常登录。有人知道如何找出导致这种情况的原因吗?
先谢谢您的帮助。
----- 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 官方版本 5.5
答案1
由于这种情况发生在您登录时,因此几乎可以肯定这是登录触发器中的错误造成的。据推测,您的系统中定义的登录触发器很少——您可以获取所有登录触发器的列表。
SELECT owner, trigger_name
FROM dba_triggers
WHERE triggering_event = 'LOGON'
如果您查看触发器代码,您应该能够看到一个错误,即触发器试图用大于允许精度的值填充列。我猜您正在使用登录触发器写入某种自定义审计表,并且自定义审计表中的某一列需要提高其精度。