在昨晚的一次自动测试运行过程中,我的20个工作线程中有一个爆裂了;应用程序正在尝试插入。Springframework报告ORA-00942:表或视图不存在。
通过企业管理器连接到数据库(11.1.0.6.0),我拉出一个SQL工作表并查询该表,发现(a)该表现在存在(b)本应插入的行丢失(c)该线程先前插入的行存在(d)该表在错误发生之前和之后有行。
对于一个几乎没有oracle经验的用户,我如何验证错误是否源于此数据库服务器,以及如何从那里返回错误的根本原因?
发布于 2009-10-23 04:19:59
我会从尽可能靠近数据库的地方开始,以确认在数据库本身中执行、提交、回滚了哪些SQL。我会设置TKPROF (查看文档,或者访问Tom Kyte's site获取更多信息),看看你的应用程序实际执行了什么。这至少会帮助您查看您期望执行的内容是否真的像它应该的那样“到达”。
如果该表对调用程序是“不可见的”,即如果权限不足,则会发生ORA-00942。
发布于 2009-10-23 11:52:32
正如Dave K所说,表可能已经存在,但对您的进程来说是“不可见的”。
因为“昨天晚上”这个短语,我的想法是可能有一个夜间的过程,比如备份或清理过程,这导致表被离线。
https://stackoverflow.com/questions/1609484
复制相似问题