Bonjour,

J'essaye de passer les stats d'un table avec le package DBMS_STATS en utilisant la constante DBMS_STATS.AUTO_SAMPLE_SIZE pour estimate_percent :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
begin
   DBMS_STATS.GATHER_TABLE_STATS
   (ownname => 'XXX',
   tabname => 'YYY',
   estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
   cascade => TRUE);
end;
/
Ca plante avec, le message est le suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
ORA-00933: La commande SQL ne se termine pas correctement
ORA-06512: à "SYS.DBMS_STATS", ligne 9375
ORA-06512: à "SYS.DBMS_STATS", ligne 9389
ORA-06512: à ligne 2
Si je remplace DBMS_STATS.AUTO_SAMPLE_SIZE par 10 en dur, ça marche.

J'ai remarqué que la valeur de DBMS_STATS.AUTO_SAMPLE_SIZE est 0, or la doc. Oracle spécifie que la plage de valeurs possible est [0.000001,100].
En effet, si je remplace DBMS_STATS.AUTO_SAMPLE_SIZE par 0, ça plante avec le même message d'erreur.

Y a-t-il une actions préalable à faire pour utiliser DBMS_STATS.AUTO_SAMPLE_SIZE ?
Doit-on intervenir à la création du package DBMS_STATS sur la valeur de DBMS_STATS.AUTO_SAMPLE_SIZE ?

Merci pour vos réponses.