Устранение неисправностей ORA-00942 - PullRequest
1 голос
/ 22 октября 2009

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

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

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

Ответы [ 2 ]

1 голос
/ 23 октября 2009

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

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

1 голос
/ 23 октября 2009

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

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

...