ORA-07445 [expCheckExprEquiv()+260] In 12gR1 When CURSOR_SHARING=FORCE (Doc ID 2099261.1)

Last updated on JANUARY 22, 2016

Applies to:

Oracle Database - Enterprise Edition - Version 12.1.0.2 and later
Information in this document applies to any platform.

Symptoms

In 12.1.0.2, the execution of a query that has the same function on GROUP BY and SELECT list can fail with:

ORA-07445: exception encountered: core dump [expCheckExprEquiv()+260] [SIGSEGV] [ADDR:0x1F7000856831826] [PC:0x10CB18A84] [Address not mapped to object] []

An example with such a query is:

---- Current SQL Statement for this session (sql_id=6mnq4ssshmfnh) -----
SELECT DISTINCT ZAB.NAME AS ACCOUNT_TYPE,
HT.TX_POST_DATE AS POST_DATE,
DECODE(HSB.BENEFIT_PLAN_ID,:"SYS_B_00",:"SYS_B_01",CE.BENEFIT_PLAN_NAME) AS PLAN_NAME,
HSB.BENEFIT_PLAN_ID AS PLAN_ID,
EPP2.RPT_GRP_THIRTEEN_C AS PLAN_GRP_13,
....
GROUP BY ZAB.NAME,
HT.TX_POST_DATE,
DECODE(HSB.BENEFIT_PLAN_ID,:"SYS_B_19",:"SYS_B_20",CE.BENEFIT_PLAN_NAME),
...

 The call stack trace associated with this error is:

call stack:
===========
... expCheckExprEquiv <- kkqtutlChkOpnEquiv <- kkqvtSyncBinds <- kkqvtdrv <- kkqdrv <- kkqctdrvIT <- apadrv <- opitca <- kksFullTypeCheck <- rpiswu2 <- kksSetBindType <- kksfbc...

 

Changes

We met all of the following:

  - cursor_sharing is set to FORCE
  - query has the same function on GROUP BY and SELECT list ( example: DECODE(HSB.BENEFIT_PLAN_ID,:"SYS_B_00",:"SYS_B_01",CE.BENEFIT_PLAN_NAME) AS PLAN_NAME)
  - the function contains one or more literals
  - the query should signal ORA-979, but instead produces an internal error

Cause

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