Pular para o conteúdo
  • Este tópico contém 6 respostas, 4 vozes e foi atualizado pela última vez 13 anos, 2 meses atrás por diegolenhardt.
Visualizando 7 posts - 1 até 7 (de 7 do total)
  • Autor
    Posts
  • #101303
    jurupoc
    Participante

      Pessoal,
      preciso criar uma procedure que receba um valor para criar uma tabela, a procedure está compilando mas quando eu executo ela apresenta o erro abaixo:

      ORA-06512


      PROCEDURE CALCULO_TBLPROGCOMPRAS (

      NLOJA NUMBER)

      AS
      nrows integer;

      BEGIN

      begin
      EXECUTE IMMEDIATE 'create table fialoja_temp as (select * from fialoja where lja_codigo = '||nloja||')';
      end;

      END;

      #101304
      rman
      Participante

        Como você está chamando a procedure ? Qual parâmetro que você está passando ? Dá um exemplo.

        #101305
        felipeg
        Participante

          O Oracle 6512 só indica que houve um erro em uma linha, ele vem geralmente acompanha um outro erro.

          O 6512 é só o que aparece pra você?
          Se tiver mais coisas posta junto.

          E como o @rman disse, cite um exemplo.

          Atenciosamente,
          Felipe.

          #101306
          jurupoc
          Participante

            [quote=”rman”:19cj26zv]Como você está chamando a procedure ? Qual parâmetro que você está passando ? Dá um exemplo.[/quote]

            @rman

            Agora está ocorrendo um erro de privilégios insuficientes….
            ORA-01031
            Detalhe que dei privilégios de DBA para o usuário.


            DECLARE
            BEGIN

            calculo_tblprogcompras(1);

            END;

            #101307
            felipeg
            Participante

              Estranho,

              Tenta rodar o create table na mão e vê o que retorna.

              Atenciosamente,
              Felipe.

              #101308
              jurupoc
              Participante

                create table gustavo (
                codigo integer
                )

                PROCEDURE procteste (loja integer)

                as
                BEGIN

                    begin 
                        EXECUTE IMMEDIATE 'create table gustavo_teste as (select * from gustavo)';
                    end;    
                

                END;

                fiz um caso de teste, agora está ocorrendo erro de privilégios ah eu tentei rodar o comando na mão e vai….

                #101314
                diegolenhardt
                Participante

                  se colocar NULL dentro da procedure, ela roda?

                  se nao rodar é:

                  GRANT EXECUTE ON suaprocedure TO usuario;

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