Устранение неисправностей ORA-00942

В середине автоматизированного тестового прогона вчера вечером один из моих двадцати рабочих потоков оборвался; приложение пыталось вставить. Отчеты Springframework ORA-00942: таблица или представление не существует.

Подключаясь к базе данных (11.1.0.6.0) через менеджера предприятия, я открываю рабочий лист SQL и запрашиваю таблицу, обнаруживая (а), что таблица существует сейчас (б) отсутствует строка, которая должна была быть вставлена ​​(с) присутствует строка, ранее вставленная этим потоком; (d) в таблице есть строки до и после ошибки во времени.

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

2 ответа

Я бы начал как можно ближе к базе данных, чтобы подтвердить, какой SQL выполняется, фиксируется, откатывается и т. Д. В самой базе данных. Я бы настроил TKPROF (просмотрите документы или посетите сайт Тома Кайта для получения дополнительной информации) и посмотрите, что на самом деле выполняется из вашего приложения. Это, по крайней мере, поможет вам понять, действительно ли то, что вы ожидаете, будет исполнено, как и должно быть.

ORA-00942 произойдет, если таблица "невидима" для вызывающей программы, т.е. если недостаточно прав.

Как сказал Дэйв К., таблица, возможно, существовала, но стала "невидимой" для вашего процесса.

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

Другие вопросы по тегам