Trigger

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
Avatar do usuário
MuLtAnI
Moderador
Moderador
Mensagens: 90
Registrado em: Ter, 01 Jun 2004 9:21 am
Localização: Videira - SC
Contato:

Olá pessoal, tenho um problema com uma Trigger.

Tenho uma tabela que é responsável pelos movimentos de estoque e qualquer ação (insert, delete ou update) que seja feita nessa tabela dispara a Trigger que atualiza uma outra tabela responsávels pelos cálculos de estimativa do Estoque.

O problema é o seguinte, descobri um furo nesse programa que está rodando a tempos e preciso corrigir, só que a única maneira de corrigir este erro, é fazer uma consulta na própria tabela que dipara a trigger, no caso a de movimentos, para descobrir o MAX da data de movimento de entrada e retirada e atualizar a tabela de estimativa, porém, ela me retorna um erro pois a tabela está em mutação.

Tentei criar uma view mas também não dá.

Tentei utilizar transação autônuma com PRAGMA AUTONOMOUS_TRANSACTION; e nada, pois não é feita nenhuma alteração para dar um commit ou roll back, e assim a consulta não me retorna nada.

Alguém tem alguma sugestão?

obrigado!
erthal
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 130
Registrado em: Seg, 22 Nov 2004 1:45 pm
Localização: Niterói - RJ
Gustavo Erthal Jr. | TRISCAL
...................................................
Rio de Janeiro | (21) 2507-2010
São Paulo | (11) 3167-0526
www.triscal.com.br

Brother,

Tente criar uma outra table com CREATE TABLE_TEMP AS SELECT * FROM TABELA_ORIGEM, e depois faça os selects que você precisa.

Abs,
Zida
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 53
Registrado em: Ter, 08 Jun 2004 2:59 pm
Localização: Toledo - PR

Boa noite,
você poderia colocar um JOB rodar de minuto em minuto, fazendo consultas nessa sua tabela de movimento e inserindo/atualizando o necessario.
Se achar que fica muito grande/demorada a consulta, você pode colocar um campo de data, e consultar apenas os registros que tiverem data maior ou igual a ultima vez q o JOB foi rodado
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes