Olá Victor,
 
 
    O problema com a trigger mutante é porque você esta dentro da trigger 
consultando a propria tabela. Tente mudar a logica para não fazer o select na 
tabela que esta sendo editada.
 
   Contudo caso não for possivel, você tem algumas saida, (quero escrever sobre 
isso no meu blog , mas a falta de tempo complica).
 
   1º Você pode criar uma view com a mesma estrutura da tabela, criar trigger 
instead of, ai você faz a sua logica consultando a tabela e depois atualiza a 
tabela.
 
   2º Você pode criar duas Trigger na tabela, uma a nivel de Linha e outra a 
nivel de instrução, e ainda um TYPE ou uma coleção na assinatura do pacote de 
um pacote (publicado). Feito isso para cada linha afetada você inclui o 
registro no TYPE e depois no final quando a trigger de instrução for disparada 
você percorre a coleção e faz sua logica para cada registro.
 
  

Alessandro Lúcio Cordeiro da Silva 
        Analista de Sistema
þ http://alecordeirosilva.blogspot.com/
 

________________________________
 De: Victor Freidinger <victor_freidin...@yahoo.com.br>
Para: "oracle_br@yahoogrupos.com.br" <oracle_br@yahoogrupos.com.br> 
Enviadas: Quinta-feira, 15 de Dezembro de 2011 17:10
Assunto: Re: [oracle_br] Re: Dúvida Vetor
 

 
   
 
Olá Luiz,

Já havia esquecido deste tópico.
Eu resolvi o problema de 2 formas diferentes, a primeira utilizando MULTISET e 
a outra utilizando Bubble Sort.
Agora estou estudando outras formas de resolução.

Mas, de qualquer forma, obrigado pelo link, será de boa ajuda para estudos.

PS: O problema com a trigger com o pragma autonomous_transaction ainda persiste.

________________________________
De: LuizG <lgfco...@gmail.com>
Para: oracle_br@yahoogrupos.com.br 
Enviadas: Quinta-feira, 15 de Dezembro de 2011 16:06
Assunto: [oracle_br] Re: Dúvida Vetor

Oi Victor,

Você pode usar uma coleção que no PL se denomina nested table.

Dá uma olhada em:
http://docs.oracle.com/cd/B19306_01/appdev.102/b14261/collections.htm#BABFACFA

--- Em oracle_br@yahoogrupos.com.br, "victor_freidinger" 
<victor_freidinger@...> escreveu
>
> Boa tarde,
> 
> Sou novo em PL SQL e gostaria de uma ajuda na construção de um vetor.
> Hoje eu tenho dessa forma e funciona para uma necessidade primária:
> 
> 
> DECLARE
> TYPE tvetor IS VARRAY(5) OF NUMBER(3);
> 
> v tvetor;
> i NUMBER := 1;
> j NUMBER;
> k NUMBER;
> 
> pri NUMBER;
> seg NUMBER;
> ter NUMBER;
> qua NUMBER;
> qui NUMBER;
> 
> qtd NUMBER;
> 
> BEGIN
> 
> v := tvetor(5, 10, 7, 9, 1); /* recebe vetor */
> 
> WHILE i <= 5 LOOP /* looping para contagem de tamanho do vetor */
> 
> j := 1;
> qtd := 0;
> 
> WHILE j <= 5 LOOP /* looping para a verificação dos valores */
> IF v(i) > v(j) THEN /* verificação se posição x é maior que posição y */
> qtd := qtd + 1; /* contagem para atribuição de valores nas variáveis */
> END IF;
> j := j + 1;
> END LOOP;
> 
> IF (qtd + 1 = 1) THEN /* atribuindo valores as variáveis conforme a contagem 
> */
> pri := v(i);
> ELSIF (qtd + 1 = 2) THEN
> seg := v(i);
> ELSIF (qtd + 1 = 3) THEN
> ter := v(i);
> ELSIF (qtd + 1 = 4) THEN
> qua := v(i);
> ELSE
> qui := v(i);
> END IF;
> 
> i := i + 1;
> 
> END LOOP;
> 
> v := tvetor (pri,seg, ter, qua, qui); /* atribuindo valores no vetor */
> 
> FOR k IN v.FIRST..v.LAST LOOP /* looping para mostrar posição 1 primeiro 
> valor, posição 2 segundo valor, etc */
> DBMS_OUTPUT.PUT_LINE ('Posição '||k||': '||v(k));
> END LOOP;
> 
> END;
> 
> Eu gostaria de fazer desta forma:
> 
> Eu chamasse na tela, independente de tamanho fixo do vetor, os valores que eu 
> vou querer.
> Se necessário, pedir para informar qual é o limite de posições ou quando eu 
> colocar algum número ou letra, saisse fora(talvez -1). Não sei se é possível 
> fazer isso, mas, é uma idéia.
> 
> E o mais importante, como que eu consigo ordenar dessa forma?
> 
> Porque com valores fixos, eu limitei as variáveis e cada uma está recebendo 
> de uma variável conforme a verificação, mas, quando ficar mais 'dinâmico' eu 
> não vou conseguir trabalhar dessa forma.
> 
> Será que alguém consegue me ajudar?
>

------------------------------------

----------------------------------------------------------
>Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
>responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
----------------------------------------------------------
>Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
>Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
>http://www.oraclebr.com.br/  
---------------------------------------------------------- Links do Yahoo! 
Grupos

[As partes desta mensagem que não continham texto foram removidas]

   
      

[As partes desta mensagem que não continham texto foram removidas]

Responder a