Pular para o conteúdo
  • Este tópico contém 18 respostas, 6 vozes e foi atualizado pela última vez 16 anos, 7 meses atrás por Rodrigo Almeida.
Visualizando 15 posts - 1 até 15 (de 19 do total)
  • Autor
    Posts
  • #88294
    hermesmc
    Participante

      Senhores,

      Ao rodar o comando:

      exec dbms_stats.gather_schema_stats(‘owner’)

      Error starting at line 1 in command:
      exec dbms_stats.gather_schema_stats(‘owner’)
      Error report:
      ORA-00923: FROM keyword not found where expected
      ORA-06512: at “SYS.DBMS_STATS”, line 13591
      ORA-06512: at “SYS.DBMS_STATS”, line 13937
      ORA-06512: at “SYS.DBMS_STATS”, line 14015
      ORA-06512: at “SYS.DBMS_STATS”, line 13974
      ORA-06512: at line 1
      00923. 00000 – “FROM keyword not found where expected”
      *Cause:
      *Action:

      Mas com essa informação não estou conseguindo localizar o erro na base de dados. O que poderia ser?

      #88295
      Ishii
      Participante

        Olá,

        O comando está correto?

        É com owner mesmo ou vc substituiu pelo nome correto do OWNER, algo como DBORACLE ou SIGA ou outro…

        []s Ishii

        #88297
        hermesmc
        Participante

          Eu substitui o nome correto por OWNER. Este comando era executado sem problemas antes. Depois que algumas tabelas foram criadas é que começou a aparecer. Porém não gostaria de dropar todas as tabelas criadas até achar a culpada. Deve haver uma forma melhor para localizar o problema.

          #88302
          vieri
          Participante

            Vc não tem que setar OWNER.

            Owner quer dizer dono, é apenas um exemplo…

            vc tem que colocar o dono da tabela no seu comando.

            verifique os owner’s das tabelas :

            select owner , count(*) from dba_tables group by owner;

            substitua owner pelo resultset deste script.

            #88304
            David Siqueira
            Participante

              Siga as instruções do Vieri, estão corretissimas.

              Abraço

              #88306
              hermesmc
              Participante

                Gente, vc não estão entendendo. Coloquei a “palavra” OWNER onde seria o nome do owner. Por exemplo: a minha base se chama XPTO e o seu owner ABCD. Dando o comando exec dbms_stats.gather_schema_stats(‘ABCD’) eu atualizo as estatíscas da base XPTO, não é isso? Como eu disse, troquei o nome do owner original pela palavra OWNER. Só isso. Antes o comando: exec dbms_stats.gather_schema_stats(‘nome_do_owner’) funcionava corretamente mas depois da criação de algumas tabelas o comando retorna o erro acima.

                #88307
                Ishii
                Participante

                  Olá,

                  Você tem os nomes destas tabelas que foram criadas? E como elas foram criadas?

                  []s Ishii

                  #88309
                  David Siqueira
                  Participante

                    Ok!
                    Então vamos a pergunta mais importante.
                    Por qual razão você tirou o nome do OWNER da sua base e colocou a palavra reservada “OWNER” no lugar da chamada da execução do pacote DBMS_STATS?

                    Se você olhar bem, se essas tais tabelas novas foram criadas debaixo do owner ABCD e sua chamada da procedure estava coletando estatisticas do Owner em questão não haveria de dar problemas, como você mudou o nome do OWNER em questão para a palavra reservada ele não esta executando normalmente.

                    Tente voltar o nome do Owner que estava antes, e check se as estatisticas foram coletadas.

                    Abraço

                    #88310
                    David Siqueira
                    Participante

                      Se ainda assim não funcionar cara, use a procedure que coleta estatisticas de tabelas diretamente :

                      DBMS_STATS.GATHER_TABLE_STATS

                      Exemplo:

                      EXEC DBMS_STATS.gather_table_stats('SCOTT', 'EMPLOYEES', estimate_percent => 15);

                      Abraço.

                      #88313
                      hermesmc
                      Participante

                        Obrigado pelas dicas. Lamento ter confundido a cabeça de todos usando a palavra owner. Prometo não fazer mais isso. O meu intuito era apenas saber interpretar o erro como ocorreu. Nenhuma das repostas dadas acima foi eficiente. Por isso vou repetir tudo tirando a palavra owner.

                        O comando dado foi:

                        exec dbms_stats.gather_schema_stats(‘ABCD’)

                        E o erro foi:

                        Error starting at line 1 in command:
                        exec dbms_stats.gather_schema_stats(‘ABCD’)
                        Error report:
                        ORA-00923: FROM keyword not found where expected
                        ORA-06512: at “SYS.DBMS_STATS”, line 13591
                        ORA-06512: at “SYS.DBMS_STATS”, line 13937
                        ORA-06512: at “SYS.DBMS_STATS”, line 14015
                        ORA-06512: at “SYS.DBMS_STATS”, line 13974
                        ORA-06512: at line 1
                        00923. 00000 – “FROM keyword not found where expected”
                        *Cause:

                        Como localizar o erro que ocorreu depois da criação de várias tabelas?

                        Grato

                        #88315
                        vieri
                        Participante

                          Cara o comando está correto…
                          O jeito que vc escreveu confundiu o pessoal.
                          Seja mais direto e poste o comando inteiro que usou,
                          em T.I TODOS usam forúm ninguem vai lhe discriminar por isso
                          na sua empresa , nem vão invadir sua instância , porquem sabem
                          o nome do seu owner.

                          Voltando…

                          Cara coloca um trace antes de executar a coleta!!

                          alter session set sql_trace=true;

                          exec dbms…..

                          alter session set sql_trace=true;

                          show parameters user_dump_dest

                          Va até o diretório , analise o arquivo e veja o ponto que gerou o erro.

                          está é a saida.

                          #88322
                          vieri
                          Participante

                            OPS:

                            corrigindo.

                            alter session set sql_trace=true;

                            exec dbms…..

                            alter session set sql_trace=

                            😛

                            #88323
                            vieri
                            Participante

                              alter session set sql_trace= false

                              #88324
                              vieri
                              Participante

                                O false cancela a geração do TRACE.

                                #88327
                                hermesmc
                                Participante

                                  Ok Vieri, obrigado. Amanhã vou tentar.

                                Visualizando 15 posts - 1 até 15 (de 19 do total)
                                • Você deve fazer login para responder a este tópico.