Na verdade a página também não diz o porque, só diz pra fazer : como o teste abaixo funciona independentemente do NLS no 9.2.0.8, vou ** supor ** que devia mesmo ser bug das versões antigas, o que não me surpreenderia nada... Bom, OK, fica no ar, só perguntei de curiosidade, já que necessariamente os (poucos) bancos 9i que ainda podem me cruzar o caminho no cliente atual são patcheados ao menos pra 9.2.0.6...
[]s Chiappa C:\Documents and Settings\chiappa>C: C:\Documents and Settings\chiappa>set ORACLE_SID=O9IR2 C:\Documents and Settings\chiappa>set ORACLE_HOME=C:\O9IR2 C:\Documents and Settings\chiappa>SET PATH=%ORACLE_HOME%\BIN;%PATH% C:\Documents and Settings\chiappa>sqlplus system/manager SQL*Plus: Release 9.2.0.8.0 - Production Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production With the Partitioning, Oracle Label Security, OLAP and Oracle Data Mining option s JServer Release 9.2.0.8.0 - Production ==> o setting está como vírgula pra decimal ... SQL> select 3/2 from dual; 3/2 ---------- 1,5 SQL> exec dbms_stats.gather_table_stats(ownname=>'SCOTT',tabname=>'DEPT', estima te_percent=>DBMS_STATS.AUTO_SAMPLE_SIZE, method_opt=>'FOR ALL INDEXED COLUMNS SI ZE AUTO', cascade =>TRUE ); Procedimento PL/SQL concluÝdo com sucesso. ==> funcionou, agora altero pra ponto como decimal : SQL> alter session set NLS_NUMERIC_CHARACTERS='.,'; SessÒo alterada. SQL> select 3/2 from dual; 3/2 ---------- 1.5 SQL> exec dbms_stats.gather_table_stats(ownname=>'SCOTT',tabname=>'DEPT', estima te_percent=>DBMS_STATS.AUTO_SAMPLE_SIZE, method_opt=>'FOR ALL INDEXED COLUMNS SI ZE AUTO', cascade =>TRUE ); Procedimento PL/SQL concluÝdo com sucesso. ==> funcionou a mesma coisa... --- Em oracle_br@yahoogrupos.com.br, Eduardo Souza <pjabran...@...> escreveu > > Acesse o link..... > > http://dbaspot.com/forums/oracle-server/86353-dbms_stats-gather-auto-option-ora-00933-a.html > > 2009/11/26 jlchiappa <jlchia...@...> > > > > > > > Muuuuito estranho, pois essa NLS controla caracteres de milhar/decimal, e o > > AUTO_SAMPLE_SIZE é um valor numérico Inteiro (sem decimal) e menor que 100, > > não deveria interferir em nada.... De curiosidade, de onde vc tirou essa > > informação ? Isso parece work-around pra bug interno, mas eu não o > > conhecia... > > > > []s > > > > Chiappa > > > > > > --- Em oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br>, > > Eduardo Souza <pjabrantes@> escreveu > > > > > > Obtive uma informação para utilizar o seguinte comando antes: > > > > > > alter session set NLS_NUMERIC_CHARACTERS='.,'; > > > e agora está funcionando. > > > > > > 2009/11/25 jlchiappa <jlchiappa@> > > > > > > > > > > > > > > > > > Colega, cfrme abaixo (copiei do seu texto) a sintaxe em si está > > correta, a > > > > primeira suposição aqui que o problema é algo que a gente não possa ver > > (ie, > > > > um ENTER ou algum caracter de controle, algum espaço a mais, vírgulas a > > mais > > > > ou a menos) ... Outra seria algum ** bug ** na 9.2.0.4, que aliás era o > > que > > > > mais tinha nela, a 9ir2 só ficou estável mesmo após 9.2.0.6 no > > mínimo... > > > > recheque... > > > > > > > > []s > > > > > > > > Chiappa > > > > > > > > => demonstração : > > > > > > > > SQL*Plus: Release 9.2.0.8.0 - Production on Qua Nov 25 21:00:11 2009 > > > > > > > > Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. > > > > > > > > Conectado a: > > > > Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production > > > > With the Partitioning, Oracle Label Security, OLAP and Oracle Data > > Mining > > > > options > > > > JServer Release 9.2.0.8.0 - Production > > > > > > > > sys...@o9ir2:SQL> exec dbms_stats.gather_table_stats(ownname > > > > =>'SCOTT',tabname=>'DEPT', > > estimate_percent=>DBMS_STATS.AUTO_SAMPLE_SIZE, > > > > method_opt=>'FOR ALL INDEXED COLUMNS SIZE AUTO', cascade =>TRUE ); > > > > > > > > Procedimento PL/SQL concluído com sucesso. > > > > > > > > sys...@o9ir2:SQL> > > > > > > > > --- Em oracle_br@yahoogrupos.com.br > > > > <oracle_br%40yahoogrupos.com.br><oracle_br% > > 40yahoogrupos.com.br>, > > > > > > Eduardo Souza <pjabrantes@> escreveu > > > > > > > > > > > > > > Caros amigos, > > > > > > > > > > Estou executando o seguinte comando: > > > > > > > > > > > > > > > exec *dbms_stats.gather_table_stats*( > > > > > > > > > > ownname => 'BRA' > > > > > > > > > > ,tabname => 'FIN_AGING_REPORTS' > > > > > > > > > > ,estimate_percent =>*DBMS_STATS.AUTO_SAMPLE_SIZE > > > > > * > > > > > > > > > > ,method_opt => 'FOR ALL INDEXED COLUMNS SIZE AUTO' > > > > > > > > > > ,cascade => TRUE ); > > > > > > > > > > e recebendo a seguinte mensagem de erro: > > > > > > > > > > ORA-00933: SQL command not properly ended > > > > > ORA-06512: at "SYS.DBMS_STATS", line 9375 > > > > > ORA-06512: at "SYS.DBMS_STATS", line 9389 > > > > > ORA-06512: at line 1 > > > > > > > > > > Justamente no comando 'estimate_percent > > =>*DBMS_STATS.AUTO_SAMPLE_SIZE'* > > > > > > > > > > *Se eu tirar o uso do **DBMS_STATS.AUTO_SAMPLE_SIZE por 100 por > > exemplo, > > > > > executa normalmente.* > > > > > > > > > > *O que há de errado?* > > > > > > > > > > *Outros dados:* > > > > > > > > > > *BANNER* > > > > > > > > > > *Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64bit Production > > > > > PL/SQL Release 9.2.0.4.0 - Production > > > > > * > > > > > > > > > > ** > > > > > > > > > > ** > > > > > > > > > > ** > > > > > > > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > > > > > > > > > > > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] >