Ora 33336 Error During Cube Build (Doc ID 1389486.1)

Last updated on DECEMBER 27, 2011

Applies to:

Oracle OLAP - Version: 11.2.0.2 to 11.2.0.2 - Release: 11.2 to 11.2
Information in this document applies to any platform.

Symptoms

If you refer to an unqualified dimension name in the FOR clause of a build
script and you build a cube in another user or AW, then you may end up with
an ORA-33336 error during a LIMIT statement . The server currently ensures
that all build items (cubes and dimensions) belong to the same AW, but it
does not do the same for dimensions in a FOR clause.

To reproduce, create two users, GLOBAL and OLAPTRAIN, both with dimensions
named PRODUCT. Give rights to OLAPTRAIN so that it could build the cube in
GLOBAL. (e.g. GRANT DBA TO OLAPTRAIN)

Then try to build a cube from GLOBAL as the OLAPTRAIN user, but do not
qualify the owner of the PRODUCT dimension. You get the following error:

------------------------------
OLAPTRAIN > BEGIN
2 dbms_cube.build('global.price_cost_cubew using (for product where 1 = 1
build(solve))');
3 END;
4 /
BEGIN
*
ERROR at line 1:
ORA-37162: OLAP error
XOQ-00703: error executing OLAP DML command "(LIMIT PRODUCT TO CHGDIMS(1 EQ 1
TO OLAPTRAIN.SALESTRACK!PRODUCT) : ORA-33336: Analytic workspace
OLAPTRAIN.SALESTRACK is not attached.
)"
ORA-06512: at "SYS.DBMS_CUBE", line 234
ORA-06512: at "SYS.DBMS_CUBE", line 287
ORA-06512: at line 2

Even  if you fully qualify the dimension names in the FOR clause, the server will strip
out these qualifications when it executes slave processes. The only workaround  is to execute the procedure as the owner of the AW.

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