昨晚在自动测试运行过程中,我的二十个工作线程中的一个被吹走了;该应用程序正在尝试INSERT。 Springframework报告ORA-00942:表或视图不存在。
通过企业管理器连接到数据库(11.1.0.6.0),我拉出一个SQL工作表并查询该表,发现(a)该表现在存在(b)应该插入的行是缺少(c)此线程先前插入的行存在(d)该表在时间错误之前和之后有行。
对于oracle经验不足的用户,如何验证错误源自此数据库服务器,从那里如何将错误返回到根本原因?
答案 0 :(得分:1)
我会尽可能接近数据库,以确认在数据库本身中执行,提交,回滚等SQL。我设置了TKPROF(查看文档,或访问Tom Kyte's site以获取更多信息)并查看从您的应用程序实际执行的内容。这至少可以帮助你看看你期望执行的内容是否真的“到达”了。
如果表对调用程序“不可见”,即如果权限不足,则会发生ORA-00942。
答案 1 :(得分:1)
正如Dave K所说,桌子可能已存在,但对你的过程变得“隐形”。
由于“昨晚”这个短语,我的想法导致可能有一个夜间过程,如备份或清理过程,导致该表脱机。