Pular para o conteúdo
Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Autor
    Posts
  • #75109
    Anônimo

      Minha d?vida ? a seguinte, tenho uma tabela localidade em um esquema x e outra igual em um esquema teste.
      Minha procedure deveria ler x e dar o insert em teste, mas quando compila me diz que a tabela teste.localidade n?o existe, me loguei em x.

      O estranho ? que se logado em x dou um select em qualquer tabela de teste, d? certo, mas dentro da procedure n?o.


      CREATE PROCEDURE fteste AS
      registro localidade%ROWTYPE;

      CURSOR csregistro IS
      SELECT * FROM agric.localidade;
      BEGIN
      OPEN csregistro;
      LOOP
      FETCH csregistro INTO registro;
      EXIT WHEN csregistro%NOTFOUND;
      INSERT INTO teste.localidade VALUES(registro.codigo,registro.nome);
      END LOOP;
      CLOSE csregistro;
      END;

      #75110
      Marcio68Almeida
      Participante

        Voc? est? criando a procedure com o usu?rio agric ???

        Mostre a mensagem de erro na cria??o da procedure e tamb?m o resultado de select na tabela a ser inserida.

        #75191
        ebertfm
        Participante

          Walace, os privil?gios que um usu?rioo tem sobre os objetos de outro via ROLE n?o s?o enxergados quendo vc tenta acessar as tabelas via PROCEDURE, ou VIEWS.

          Exemplo: Vc deve enxergar as tabelas do usu?rio TESTE via usu?rio X porque tem os privil?gios na tabela atrav?s de alguma ROLE.

          Para usar as tabelas do usu?rio TESTE em uma procedure do usu?rio X, vc tem que ter o privil?gio das tabelas do usu?rio TESTE concedidos diretamente para o usu?rio X. Exemplo:

          grant select on teste.tabela to x;

          Desta forma sua procedure vai funcionar.

          Qualquer d?vida contacte.

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