Pular para o conteúdo
Visualizando 10 posts - 1 até 10 (de 10 do total)
  • Autor
    Posts
  • #93740
    Sousa04
    Participante

      Bom dia a todos Nessa ótima Sexta Feira!!!

      Gostaria que me ajudassem nesse pequeno problem.

      Tenho uma view criada no schema do usuário X (VW_MAT_SERVIDOR).
      Eu preciso que o usuário Y atualize essa view.

      Logo fiz o seguinte com o usuário Y

      call dbms_mview.refresh(‘X.VW_MAT_SERVIDOR’)

      e me apareceu o seguinte erro

      ORA-23401: materialized view “string”.”string” does not exist

      Dei essas permissões para o usuário Y
      GLOBAL QUERY REWRITE
      QUERY REWRITE

      mas acho q to voando rsrsrs nessa parte

      Se puderem dar um help desde já agradeço.

      Abs
      Alex

      #93741
      Avatar photoRegis Araujo
      Participante

        Ola amigo..!!

        Tente assim..!

        EXECUTE DBMS_MVIEW.REFRESH(‘<NOME_DA_VIEW','’);

        Onde no campo vc irá colocar C de Complete ou F de Force..!

        Normalmente usa-se o C de complete..!

        Abraços..!

        #93742
        Sousa04
        Participante

          vlw vou testar

          #93743
          diegolenhardt
          Participante

            O [F] não seria de Fast?

            C – Completo (Atualiza a view materializada com base em todos os registros necessários para montar a visão completa)
            F – Fast (Rapido) Atualiza a view materializada com base em arquivos de logs, ou seja, somente os registros que necessitam da alteração.

            Acho que seria isso..

            corrijam se estiver errado, sempre achei que fosse assim..

            #93744
            Avatar photoRegis Araujo
            Participante

              Opa..!!

              Certissimo Diogo.. eu me equivoquei…!

              O parametro de FORCE… é na DBMS_SNAPSHOT.REFRESH..

              Acontece..!!!

              Valeu..!

              Abraços..!

              #93746
              diegolenhardt
              Participante

                claro sem problemas,

                falows

                #93747
                Sousa04
                Participante

                  Fiz conforme pessoal

                  EXECUTE DBMS_MVIEW.REFRESH(‘VW_MAT_SERVIDOR’,’C’)
                  EXECUTE DBMS_MVIEW.REFRESH(‘VW_MAT_SERVIDOR’,’F’)
                  EXECUTE DBMS_MVIEW.REFRESH(‘VW_MAT_SERVIDOR’,’?’)

                  recebi a seguinte mensagem

                  ora-01031 insufficient privileges
                  ORA-06512: at “SYS.DBMS_SNAPSHOT”

                  Dei a permissão alter any materialized view para o usuário
                  mas o erro permanece…..

                  #93748
                  CleitonHanzen
                  Participante

                    Opá…

                    Acredito que sejam necessários mais privilégios para conseguir atualizar a MVIEW de outro owner (drop/delete/insert any table), mas isso tem desvantagens absurdas no quesito segurança.

                    O mais fácil é você criar uma procedure abaixo do Owner da MVIEW que faça o refresh e você conceder privilégio de execute nesta procedure para o owner Y.

                    create or replace procedure X.atualiza is
                    begin
                    dbms_mview.refresh(‘X.VW_MAT_SERVIDOR’) ;
                    end;
                    /

                    grant execute on X.atualiza to Y;

                    connect Y/Y

                    exec X.atualiza;

                    Acredito que seja mais fácil, rápido e seguro para resolver este problema.

                    PS: Sou péssimo em programaçao PL/SQL (me desculpem se tem algum erro)…

                    #93749
                    Sousa04
                    Participante

                      Galera consegui !!!!!!

                      tipo fiz o seguinte esquema para a criação e o acesso ok

                      DANDO PERMISSÃO DE CRIAÇÃO DA VIEW

                      sqlplus sys@homolog as sysdba

                      SQL*Plus: Release 10.2.0.1.0 – Production on Sex Abr 23 16:17:23 2010

                      Copyright (c) 1982, 2005, Oracle. All rights reserved.

                      Enter password:

                      Connected to:
                      Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – Production
                      With the Partitioning, OLAP and Data Mining options

                      SQL> grant CREATE MATERIALIZED VIEW to alexsousa;

                      Grant succeeded.

                      SQL>exit;
                      =================================================================================================================================

                      CRIANDO A VIEW VW_TESTE

                      sqlplus alexsousa@homolog

                      SQL*Plus: Release 10.2.0.1.0 – Production on Sex Abr 23 16:17:23 2010

                      Copyright (c) 1982, 2005, Oracle. All rights reserved.

                      Enter password:

                      Connected to:
                      Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – Production
                      With the Partitioning, OLAP and Data Mining options

                      SQL> create materialized VW_TESTE as
                      select a , b
                      from table
                      group by a , b;

                      Materialized view created.

                      SQL> select MVIEW_NAME, REWRITE_ENABLED, REFRESH_MODE, REFRESH_METHOD, BUILD_MODE
                      2 from all_mviews;

                      MVIEW_NAME R REFRES REFRESH_ BUILD_MOD
                      —————————— – —— ——– ———
                      VW_TESTE N DEMAND FORCE IMMEDIATE

                      SQL> EXECUTE DBMS_MVIEW.REFRESH(‘VW_TESTE’,’?’)

                      PL/SQL procedure successfully completed.

                      SQL> exit

                      ==============================================================================================
                      CRIANDO UM USUÁRIO PARA ACESSAR A VIEW NO MEU ESQUEMA

                      SQL> create user userteste identified by alex
                      2 default tablespace td_orfeu
                      3 quota unlimited on td_orfeu
                      4 ;

                      User created.

                      SQL> grant connect to userteste;

                      Grant succeeded.

                      SQL> grant resource to userteste;

                      Grant succeeded.

                      SQL> grant create any view to userteste;

                      Grant succeeded.

                      SQL> grant CREATE MATERIALIZED VIEW to userteste;

                      Grant succeeded.

                      SQL>exit;

                      ===============================================================================================
                      DANDO PERMISSÃO DA VIEW VW_TESTE PARA O USUÁRIO TESTE

                      sqlplus alexsousa@homolog

                      SQL*Plus: Release 10.2.0.1.0 – Production on Sex Abr 23 16:17:23 2010

                      Copyright (c) 1982, 2005, Oracle. All rights reserved.

                      Enter password:

                      Connected to:
                      Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – Production
                      With the Partitioning, OLAP and Data Mining options

                      SQL> grant all on vw_teste to userteste
                      2 ;

                      Grant succeeded.

                      SQL> exit

                      ==============================================================================================
                      EXECUTANDO A VIEW VW_TESTE

                      sqlplus userteste@homolog

                      SQL*Plus: Release 10.2.0.1.0 – Production on Sex Abr 23 16:17:23 2010

                      Copyright (c) 1982, 2005, Oracle. All rights reserved.

                      Enter password:

                      Connected to:
                      Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – Production
                      With the Partitioning, OLAP and Data Mining options

                      SQL> EXECUTE DBMS_MVIEW.REFRESH(‘alexsousa.vw_teste’,’?’);

                      PL/SQL procedure successfully completed.

                      SQL>

                      #93750
                      Sousa04
                      Participante

                        obrigado a todos!!!!

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