2009-11-10 7 views

Répondre

10

Oui, comme ceci:

create or replace trigger trg 
after insert on emp 
for each row 
begin 
    myproc(:new.empno, :new.ename); 
end; 
+0

got it. Ça marche. Merci beaucoup. – user207902

+0

qu'est ce que c'est: new.empno? [means: new?] – Freelancer

+0

@Freelancer: dans les déclencheurs de niveau ligne Oracle, vous pouvez vous référer aux valeurs des colonnes avant et après l'effet de l'instruction de déclenchement en utilisant: old et: new. Cela devait être un déclencheur de niveau ligne, je viens d'ajouter la partie manquante 'pour chaque rangée '. –

1

Dans SQL Server il est. Quel SGBD utilisez-vous?

ETA: Oracle, hein? Je n'ai aucune expérience personnelle avec cela, mais this semble indiquer que vous pouvez. Je l'ai trouvé en googlant "oracle déclenché procédure stockée".

+0

J'utilise Oracle – user207902

1

Oui, vous pouvez. Gardez juste à l'esprit qu'un déclencheur peut déclencher pour chaque ligne affectée par un trigger DML. Votre procédure stockée doit donc être optimisée ou vous risquez de rencontrer des problèmes de performances. Les déclencheurs sont une bonne chose mais vous devez juste garder à l'esprit les problèmes de performance qui peuvent survenir lors de leur utilisation.

2

Oui, vous pouvez tirer une procédure à partir d'un déclencheur. Mais, gardez à l'esprit que le déclencheur & procedur ne doit pas accéder à la même table.