ORA-01001: неверный курсор - PullRequest
5 голосов
/ 05 марта 2010

Я получаю ошибку оракула ORA-01001: invalid cursor в производстве, где несколько транзакций обрабатываются в массе.Однако тот же код прекрасно работает в процессе разработки.

Мне нужно знать, когда можно иметь ORA-01001: invalid cursor в запросе на обновление.Я немного погуглил и обнаружил, что есть две возможности получить эту ошибку:

  1. Количество открытых курсоров становится больше, чем разрешено MAXCURSOR?
  2. Попытка получить выполняется без открытиякурсор.

Кто-нибудь сталкивался с той же проблемой, которую я описал выше?Пожалуйста, предложите решения.

1 Ответ

3 голосов
/ 05 марта 2010

Да, это общие причины (см. Также это , если вы этого еще не сделали).

Учитывая, что вы используете две разные среды (dev / prod), вы убедились, что параметр MAXCURSOR одинаков (или что Prod MAXCURSOR> Dev MAXCURSOR)?

Вы также должны исследовать свой пакетный процесс и посмотреть, может ли количество данных заставить ваш процесс открыть больше курсора в prod. Пример: ваша партия запускает хранимую процедуру для каждого кода отдела в таблице отделов, и каждый экземпляр этой процедуры открывает N курсоров.

Если у вас есть, скажем, 3 деп. коды в dev, потому что этого достаточно для ваших тестов, и 34 кода отдела в Prod, вы можете использовать курсор в 10 раз и попасть в ту же ситуацию ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...