我正在使用标准创建器执行具有多个条件的搜索的应用程序。有一个错误,当选择两个特定条件时,应用程序崩溃。我使用了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。
答案 0 :(得分:2)
您应该向Oracle support创建服务请求。似乎您遇到了错误 ora-600 [kdsgrp1]的原因和解决方案(文档ID 1332252.1),但您至少应使用dba进行检查。