1

昨晚在进行自动化测试时,我的 20 个工作线程中的一个发生了故障;应用程序正在尝试插入。Springframework 报告 ORA-00942:表或视图不存在。

通过企业管理器连接数据库(11.1.0.6.0),我拉出一个SQL工作表并查询表,发现(a)该表现在存在(b)应该插入的行丢失了(c )该线程先前插入的行存在(d)该表在时间错误之前和之后都有行。

对于一个很少有 oracle 经验的用户,我如何验证错误是否源自此数据库服务器,以及如何从那里将错误追溯到根本原因?

4

2 回答 2

1

我会从尽可能靠近数据库的地方开始,以确认在数据库本身中执行、提交、回滚等 SQL。我会设置 TKPROF(查看文档,或访问Tom Kyte 的网站以获取更多信息)并查看您的应用程序实际执行了什么。这至少可以帮助您了解您期望执行的操作是否真正“到达”。

如果表对调用程序“不可见”,即权限不足,则会出现 ORA-00942。

于 2009-10-22T20:19:59.437 回答
1

正如 Dave K 所说,该表可能已经存在,但对您的过程变得“不可见”。

由于“昨晚”这句话,我的想法导致可能有一个夜间过程,例如备份或清理过程,导致表脱机。

于 2009-10-23T03:52:32.033 回答