Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

FileasFogg

ora-00060

Recommended Posts

E aí galera ??? beleza ??? Seguinte tenho uma trigger que é disparada toda vez que o valor do campo producao_liberada é alterado, fazendo com quem todos os outros itens ligados ao item alterado sejam producao_liberada 'n'. Agora vamos aos problemas, o primeiro problema que tive foi a famosa table mutant (ou como eu chamo, tabela com síndrome de X-Men) , mas com um Pragma Autonomous_Transaction o primeiro problema foi resolvido, porém a trigger agora acusa Deadlock, (ORA-00060). Alguém tem alguma idéia de como resolver isso ??? Código da Trigger:CREATE OR REPLACE TRIGGER TG_CADPROD AFTER UPDATE ON CADPROD FOR EACH ROW DECLARE PRAGMA AUTONOMOUS_TRANSACTION; BEGIN ------------------------------------- -- Liberando a produção de um item -- ------------------------------------- IF :NEW.PRODUCAO_LIBERADA = 0 AND :OLD.PRODUCAO_LIBERADA = 1 THEN UPDATE CADPROD A SET A.PRODUCAO_LIBERADA = 0 WHERE A.CODIGO IN (SELECT B.N_ARCA_PRINC FROM REL_PROD_COMP B WHERE B.N_ARCA_COMP = :NEW.CODIGO); UPDATE CADPROD A SET A.PRODUCAO_LIBERADA = 0 WHERE A.CODIGO IN (SELECT B.N_ARCA_COMP FROM REL_PROD_COMP B WHERE B.N_ARCA_PRINC = :NEW.CODIGO); COMMIT; END IF; ------------------------------------- -- Trancando a produção de um item -- ------------------------------------- IF :NEW.PRODUCAO_LIBERADA = 1 AND :OLD.PRODUCAO_LIBERADA = 0 THEN UPDATE CADPROD A SET A.PRODUCAO_LIBERADA = 1 WHERE A.CODIGO IN (SELECT B.N_ARCA_PRINC FROM REL_PROD_COMP B WHERE B.N_ARCA_COMP = :NEW.CODIGO); UPDATE CADPROD A SET A.PRODUCAO_LIBERADA = 1 WHERE A.CODIGO IN (SELECT B.N_ARCA_COMP FROM REL_PROD_COMP B WHERE B.N_ARCA_PRINC = :NEW.CODIGO); COMMIT; END IF;END TG_CADPRODValew Galera

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sua base está com sessões concorrendo entre sí, pelo mesmo objeto na mesma linha em modo exclusivo.

 

O jeito é matar uma sessão (Usuários).

 

Abraços, http://forum.imasters.com.br/public/style_emoticons/default/shifty.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.