Pular para o conteúdo
Visualizando 6 posts - 1 até 6 (de 6 do total)
  • Autor
    Posts
  • #79199
    Mayhem
    Participante

      Boa Noite,

      Estou tentando criar uma Trigger com esse comando:

      BEGIN
      SELECT seq_rule_time.nextval
      INTO :NEW.id_seq FROM DUAL;
      END;

      na hora de criar ele me gera esse erro,

      ORA-000942: a tabela ou view nao existe

      você nao tem privilegios suficientes para executar esta
      operacao. Você deve ter privilegios de sistema e de objeto
      apropriado para criar, editar ou eliminar objetos de banco de
      dados ou objetos que estao fora do seu esquema.

      Sendo que eu conecto no Oracle como SysDBA e nao consigo gerar essa Trigger, alguem sabe como eu devo proceder?? preciso de que permissao pra poder gerar essa Trigger???

      Valeu Pessoal
      T+

      #79200
      Marcio68Almeida
      Participante

        Provavelmente você não está referenciando corretamente a tabela onde vai criar a trigger…

        #79201
        chduarte
        Participante

          Vc pode estar criando a trigger referenciando uma tabela em outro schema. Por exemplo, vc esta conectando como sys e tentando criar a trigger para a tabela apps.xxxtabelateste

          Neste caso tente colocar o owner da tabela na criacao da trigger.

          []

          #79218
          Mayhem
          Participante

            Bom dia,

            Entao meu objetivo é criar um autonumerico para um determinado campo, criei uma sequencia ja especificando um esquema e na hora de criar a bendita Trigger ele me da esse erro, na trigger eu tambem especifico o esquema e a tabela a ser criada a trigger.

            BEGIN
            SELECT seq_rule_time.nextval
            INTO :NEW.id_seq FROM DUAL;
            END;

            Por favor alguem pode me ajudar a criar esse autonumerico.
            Valeu T+

            #79221
            chduarte
            Participante

              create table autoinc(n number, nome varchar2(30));
              create sequence autoinc_s;
              create or replace trigger bi_autoinc
              before insert on autoinc
              for each row
              begin
              select autoinc_s.nextval into :new.n from dual;
              end;
              /

              insert into autoinc(nome) values('Nome 1');
              insert into autoinc(nome) values('Nome 2');
              commit;
              select *
              from autoinc;

                   N NOME
              

                   1 Nome 1
                   2 Nome 2
              

              []

              #79222
              Mayhem
              Participante

                [quote=”chduarte”:2vy6he0m] create table autoinc(n number, nome varchar2(30));
                create sequence autoinc_s;
                create or replace trigger bi_autoinc
                before insert on autoinc
                for each row
                begin
                select autoinc_s.nextval into :new.n from dual;
                end;
                /

                insert into autoinc(nome) values('Nome 1');
                insert into autoinc(nome) values('Nome 2');
                commit;
                select *
                from autoinc;

                     N NOME
                

                     1 Nome 1
                     2 Nome 2
                

                [][/quote]

                Valeu a ajuda Carlos, Consegui criar!!!
                T+

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