Last updated on JUNE 29, 2017
Applies to:Oracle Server - Enterprise Edition - Version: 10.2.0.1
This problem can occur on any platform.
Core dump in lnxneg() when running query in 10.2 - the same query does not fail on 10.1.
The stack in the trace file shows:
... lnxneg evaneg evareo expepr qkesEval_Int qkesEvalPred kkoecp kkocptCheckPred kkoopred kkoopred kkoopred kkoPred kkoqbc apakkoqb apaqbd apadrv opitca kksLoadChild kkslod kglobld kglobpn kglpim kglpin kxsGetRuntimeLock kksfbc kkspsc0 kksParseCursor opiosq0 kpooprx kpoal8 opiodr ...
The query is built on a table (either explicitly or implicitly via a view) that has a CHECK constraint on a NUMBER column that is included in the WHERE clause. This CHECK constraint enforces a list of allowed values for the column, however the numbers in the list are not ordered and there is a mix of positive and negative values.
The following testcase demonstrates the problem:
SQL> CREATE TABLE FOO ( ID NUMBER, DATA NUMBER, CONSTRAINT FOO_DATA CHECK (DATA IN (0,1,-2)) ); SQL> SELECT 1 FROM FOO WHERE DATA = 1;
Sign In with your My Oracle Support account
Don't have a My Oracle Support account? Click to get started
My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms