mercredi 22 octobre 2014

ORA-20011: Approximate NDV failed: ORA-00600 internal error code, arguments: [1350], [3], [23], [60], [AMERICAN], [0], [], [], [], [], [], []

Je viens de migrer une base de données de la version 11.2.0.4 à la version 12.1.0.2.
En voulant regénérer les statistiques sur les "fixed objects" je rencontre l'erreur suivante:

SYS@orcl> EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;
BEGIN DBMS_STATS.GATHER_FIXED_OBJECTS_STATS; END;

*
ERROR at line 1:
ORA-20011: Approximate NDV failed: ORA-00600: internal error code, arguments:
[1350], [3], [23], [60], [AMERICAN], [0], [], [], [], [], [], []
ORA-06512: at "SYS.DBMS_STATS", line 36888
ORA-06512: at line 1


SYS@orcl>

Après quelques vérifications je me rends compte que le problème est lié au paramètre ORA_NLS10 que j'avais dans mon environnement.

[oracle@srvhost ~]$ env|grep ORA
ORA_NLS10=/u01/app/oracle/product/11.2.0/dbhome_1/nls/data/

ORACLE_SID=orcl
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1
[oracle@srvhost ~]$


En enlevant ce paramètre le problème est résolu.

[oracle@srvhost ~]$ unset ORA_NLS10
[oracle@srvhost ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Wed Oct 15 10:25:02 2014
Copyright (c) 1982, 2014, Oracle.  All rights reserved.

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics
and Real Application Testing options


SYS@orcl>  EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;

PL/SQL procedure successfully completed.

SYS@orcl>

Hope it helps...