Я работаю над приложением, которое использует построитель критериев для выполнения поиска по нескольким критериям. Существует ошибка, при которой при выборе двух конкретных критериев происходит сбой приложения. Я использовал свойство show_sql для отображения запроса, который выполняется в базе данных.
Я получаю эту ошибку:
Ошибка SQL: 600, SQLState: 60000
ORA-00600: внутренний код ошибки, аргументы: [kdsgrp1], [], [], [], [],
[], [], [], [], [], [], []
запрос следующий:
select count(ves0_.CODE) as col_0_0_
from
VES ves0_
where
ves0_.STARTDATE<=TO_DATE('29/10/2018', 'DD/MM/YYYY')
and ves0_.ENDDATE>TO_DATE('29/10/2018', 'DD/MM/YYYY')
and ves0_.LICENCE_IND='Y'
and (exists
(select
ves1_.CODE
from
LICENSES ves1_
where
ves0_.CODE=ves1_.CODE
and nvl(ves1_.LICENSE_DATE_RENEWED, ves1_.LICENSE_DATE_ISSUED)<=TO_DATE('02/10/2018', 'DD/MM/YYYY')
and ves1_.LICENSE_DATE_VALID_TO>TO_DATE('02/10/2018', 'DD/MM/YYYY')
)
)
and ves0_.STARTDATE<=TO_DATE('29/10/2018', 'DD/MM/YYYY')
and ves0_.ENDDATE>TO_DATE('29/10/2018', 'DD/MM/YYYY');
Похоже, проблема в датах внутри существующего предложения.
Некоторые даты дают правильные результаты без сбоя приложения, другие, например, как указано выше ('02 / 10/2018 '), выдают эту ошибку
[60000] [600] ORA-00600: внутренний код ошибки, аргументы: [kdsgrp1], [],
[], [], [], [], [], [], [], [], [], []
при запуске в SQL Developer, как и в приложении.
Есть ли проблема с запросом? Почему это работает для одних значений, а не для других?
Являются ли данные причиной ошибки? Я запускаю несколько других запросов, и, похоже, нет различий в данных за разные даты.
Пожалуйста, помогите. Заранее спасибо.
РЕДАКТИРОВАТЬ: у меня та же проблема с другим запросом в том же приложении:
select count(ves0_.CODE) as col_0_0_
from
VES ves0_
where
ves0_.STARTDATE<=TO_DATE('29/10/2018', 'DD/MM/YYYY')
and ves0_.ENDDATE>TO_DATE('29/10/2018', 'DD/MM/YYYY')
and ves0_.UPDATE_IND='RET'
Я написал это, потому что это более простой случай. На этот раз, когда я изменяю UPDATE_IND, запрос вылетает с той же ошибкой.
UPDATE_IND может принимать только восемь различных значений. Я протестировал все из них, и запрос выполняется для шести из них и вызывает ORA-00600 для других двух.