ORA-00600: внутренний код ошибки, аргументы: [13013], [5001], [1675658], [773963968], [10], [773963968], [17], [] - PullRequest
0 голосов
/ 05 июля 2019

При выполнении запроса ниже я получаю сообщение об ошибке:

ORA-00600: внутренний код ошибки, аргументы: [13013], [5001], [1675658], [773963968],[10], [773963968], [17], []

MERGE INTO nbfc_address_m t1
USING (SELECT a.col2, b.lesseeid
        FROM DT_AMRID a,
        LEA_AGREEMENT_DTL b
        WHERE a.agrid=b.agreementid) t2
ON (t1.bpid=t2.lesseeid)
WHEN MATCHED THEN
UPDATE SET t1.mobile=t2.col2

Это для обновления мобильного номера.

Ответы [ 2 ]

3 голосов
/ 05 июля 2019

Конкретный, менее полезный ответ

Oracle пытается получить стабильный набор строк для обновления и не может, после 5001 попытки.

Вот что означают аргументы:

  • [13013] ==> указывает, что проблема заключается в том, что не удалось определить стабильный набор строк для обновления
  • [5001] ==> количество попыток Oracle
  • [1675658] => Номер объекта данных (SELECT * FROM DBA_OBJECTS WHERE DATA_OBJECT_ID = 1675658)
  • [773963968] => Адрес блока данных, относящихся к табличному пространству
  • [10] ==> номер слота строки
  • [773963968] ==> десятичный относительный адрес блока данных обновляемого блока
  • [17] ==> внутренний код
  • [] ==> не используется

Что попробовать:

Сначала проверьте наличие повреждений блоков в индексах вашей таблицы: ANALYZE TABLE <table_name> VALIDATE STRUCTURE CASCADE. Затем удалите и заново создайте и индексы, которые показывают проблемы.

Общий, более полезный ответ

Хорошо, как я узнал все вышеперечисленное (при условии, что это даже правильно)? ...

«ORA-00600», «ORA-00700» и «ORA-07445» - это внутренние ошибки Oracle. Единственная организация, которая действительно способна диагностировать / объяснить / исправить их, - Oracle Corporation. С этой целью Oracle предоставляет диагностический инструмент на своем веб-сайте поддержки: http://support.oracle.com. Это идентификатор документа 153788.1 на их сайте (хотя вы также можете просто найти на их сайте «ORA-600 tool»).

Используя этот инструмент, вы вводите специфику вашей ошибки ORA-00600 (обычно это только первый аргумент - «13013», в вашем случае) и, если вам повезет, он перенаправит вас на заметку, сообщающую вам все об этом.

0 голосов
/ 05 июля 2019

Это может быть вызвано повреждением памяти Oracle.

Попробуйте -

  1. Удалить и заново создать индексы для обеих таблиц, используемых в запросе.
  2. Очиститькэш-память базы данных
  3. Попробуйте добавить префикс владельца таблицы на уровне сеанса

Это должно помочь вам.

Приветствия !!

...