My Oracle Support Banner

Multidimensional Valuesets Are Not Automatically Updated When Deleting Dimensions Values Over 999 Position - ORA-34706 - ORA-33160 (Doc ID 593323.1)

Last updated on FEBRUARY 18, 2019

Applies to:

Oracle OLAP - Version 10.2.0.4 and later
Information in this document applies to any platform.

Symptoms

When removing a value, that is located after the 999 position, from a dimension, the multidimensional valuesets defined over that dimension are not automatically updated (the value is not automatically removed from them).
On the other hand, when removing any of the first 999 values from the dimension, the multidimensional valuesets are automatically updated.

- The issue does not reproduce on single-dimensioned valuesets, but only on multidimensional valuesets.
- The issue does not reproduce when deleting dimension values that are within the first 999 values of the dimension, but when deleting anyone above that limit.
- Once the valueset is reset the error will not appear until the next value above 999 position is deleted from the base dimension.

NOTE: In the images and/or the document content below, the user information and data used represents fictitious data from the Oracle sample schema(s) or Public Documentation delivered with an Oracle database product.  Any similarity to actual persons, living or dead, is purely coincidental and not intended in any manner.


For example:

listnames
2 DIMENSIONs 1 VALUESET
---------------- ----------------
CUST CUST.ORDERVSET
CUST.HIERDIM

dsc cust.ordervset
DEFINE CUST.ORDERVSET VALUESET CUST <CUST.HIERDIM>
LD Stores dimension order for each CUST hierarchy

lmt cust to all

lmt cust.ordervset to all

show statlen(cust)
104,105

show statlen(cust.ordervset)
104,105

export cust.ordervset to eif file 'test.eif'

show statrank(cust '101010')
1,010
show statrank(cust '100050')
50

maintain cust delete '100050'

show statlen(cust)
104,104

show statlen(cust.ordervset)
104,104

So, the valueset was automatically updated removing the value from it too.

maintain cust delete '101010'

show statlen(cust)
104,103

show statlen(cust.ordervset)
104,104

So, the valueset was not automatically updated.

limit cust.ordervset remove '101010'
ERROR: (ORA-34706) 101010 is not a valid CORRUPTDIM1!CUST.

export cust.ordervset to eif file 'test1.eif'
ERROR: (ORA-33160) The CORRUPTDIM1!CUST dimension does not have a value at position 1009.
ORA-33160: The CORRUPTDIM1!CUST dimension does not have a value at position 1009.

limit cust.ordervset to all

export cust.ordervset to eif file 'test2.eif'

The error stops occurring after resetting, until a value above 999 position is deleted again.

Changes

 

Cause

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


In this Document
Symptoms
Changes
Cause
Solution
References

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.