Простой скрипт обновления Oracle вызывает «ORA-00600: внутренний код ошибки, аргументы: [15851], [6], [6], [1], [2], [], [], []» - PullRequest
0 голосов
/ 06 ноября 2019

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

UPDATE t_fleet_net_exposure ne
SET avlimit = (SELECT avlimit FROM V_GROUP_CRLIM WHERE ca_id = ne.ca_id)
WHERE ne.ca_id IN (SELECT ca_id FROM V_GROUP_CRLIM);

Этот запрос находится в хранимой процедуре, которая запускается заданием Oracle в течение 10 минут. Но недавно это задание не удалось, и я обнаружил, что этот запрос на обновление вызывает ошибку и не работает.

Вот ошибка после выполнения сценария вручную на Toad:

ORA-00600: внутренний код ошибки, аргументы: [15851], [6], [6], [1], [2], [], [], []

Я не смогнайти какую-то правильную причину, когда я его погуглил. Люди говорят, что это внутреннее исключение Oracle, и я должен открыть TAR для Oracle Corporation. Но мне интересно, сталкивался ли кто-нибудь с этой ошибкой и мог бы найти решение, не создавая TAR для Oracle.

Вот шаги, которые я уже попробовал:

  1. Я создал другую таблицу"t_fleet_net_exposure2" и заполняется данными из t_fleet_net_exposure. Я подумал, может быть, данные таблицы повреждены. Но запрос на обновление снова вызвал ORA-600.
  2. Я создал другое представление "V_GROUP_CRLIM2" и заменил на запрос "V_GROUP_CRLIM". Может быть, что-то не так с самой точкой зрения. Но запрос на обновление заканчивается ORA-600 снова.
  3. Я создал временную таблицу "TMP_V_GROUP_CRLIM" и заполнил ее результатом V_GROUP_CRLIM. Таблицы и данные созданы без проблем. Так что в этом нет ничего плохого.
  4. Я заменил представление V_GROUP_CRLIM на вновь созданную таблицу TMP_V_GROUP_CRLIM из запроса на обновление, затем запрос на обновление работал нормально. Это приемлемый обходной путь, но теперь мне приходится урезать и заново заполнять таблицу каждый раз, когда мне нужно выполнить запрос на обновление. Поэтому мне все еще нужна правильная причина / действие, чтобы избавиться от ошибки ORA-600.

Версия моего сервера Oracle:

Oracle Database 10g Release 10.2.0.4.0- 64-разрядная версия
PL / SQL Release 10.2.0.4.0 - Рабочая версия CORE 10.2.0.4.0 Production TNS для 64-разрядных Windows: версия 10.2.0.4.0 - Рабочая версия NLSRTL 10.2.0.4.0 - Рабочая версия

Заранее спасибо

1 Ответ

1 голос
/ 06 ноября 2019

ORA-600 - это, по сути, ошибка, т. Е. Сбой программы, и поэтому мы выручили.

В вашем случае попробуйте следующее:

alter session set "_complex_view_merging" = false;

и посмотрите, решит ли этоВаша проблема.

Реальное решение здесь - обновить до поддерживаемой версии базы данных: -)

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