begin process at 2008 07 04 09:52:39
1 204 528 membres
70 nouveaux aujourd'hui
14 116 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : trigger [ Oracle / Functions ] (tuteur59000)

trigger le 02/03/2007 18:13:10

tuteur59000

BONJOUR
pouvez vous me decrire le choix de ces 2 triggers svp?
merci



create or replace Trigger Historise_Propose
Before Update or Delete
on Propose
For each ROW
BEGIN
insert into Histo_Propose values (:old.REF_ARTICLE,:old.REF_FOURNISSEUR,SYSDATE,:OLD.PRIX);
END;

create or replace Trigger Historise_Stock
Before Update or Delete
on Stock
For each ROW
BEGIN
insert into Histo_Stock values (:old.REF_ARTICLE,:old.REF_ENTREPOT,:OLD.PRIX,SYSDATE,:OLD.QUANTITE);
END;

 


Re : trigger le 03/03/2007 15:36:37

skweeky
Membre Club
(Admin CS)
Réponse acceptée !
Bonjour,

Il semble faire la même chose, mis à part qu'il ne s'executent pas sur la même table.

C'est un usage type de trigger, on historise les données supprimer dans une autre table.


Cordialement
------------
Christian Robert - Winwise
http://blogs.developpeur.org/christian
MVP SQL Server

Re : trigger le 03/03/2007 17:03:55

tuteur59000

Bonjour,
ok merci beaucoup
je vais encore vous embéter
voilà j'ai trouvé 3 procédures qui sont "déclencher commande,facturer,traiter commander")
Pouvez vous m'expliquer leur fonctionnement (pour chaque )svp?
je vos remerci beaucoup c'est sympa

//Procédure Facturer :

 

create or replace procedure facturer

(

  NumeroClient number,

  Article number,

  quantite number,

  prix number

)

is

 numfacture number;

 

begin

 select max(numero) into num10:39 24/02/2007facture from facture where payee <> 'O' and num_client = NumeroClient;

 if numfacture is null

  then

            insert into Facture values (Seq_Facture.NEXTVAL,NumeroClient,sysdate,'0','N');

 end if;

 select max(numero) into numfacture from facture where payee <> 'O' and num_client = NumeroClient;

 

  insert into Ligne_Facture Values (numfacture,Article,prix,quantite);

 

end;

/

 

 

//Procédure Declencher_Commande :

 

 

create or replace procedure Declencher_Commande

(

  Nombre_a_commander Number,

  Indice_rupture number

)

is

ref_art number;

 

BEGIN

  DECLARE cursor curs is Select ref_article from stock group by ref_article having sum(quantite) < Indice_rupture;

 

  BEGIN

            Open curs;

            LOOP

                        fetch curs into ref_art;

                        exit when curs%notfound;

                       

insert into commande

SELECT seq_commande.nextval,ref_art,F.REFERENCE, sysdate,P.PRIX,Nombre_a_commander

from Propose P, Fournisseur F,minprix M

where F.REFERENCE=P.REF_FOURNISSEUR

and M.REFERENCE=ref_art

and M.prixmin=P.PRIX

and P.ref_article=ref_art;

 

 

            END LOOP;

  END;

END;

 

 

// procédures  traiter commande

 

CREATE VIEW SOMME_ENS AS

SELECT REF_ENTREPOT , SUM (Quantite ) as SOMME

FROM STOCK

GROUP BY REF_ENTREPOT;

 

CREATE OR REPLACE PROCEDURE Traiter_Commande (num NUMBER)

is

ref NUMBER;

BEGIN

 

SELECT min(REF_ENTREPOT) INTO REF FROM SOMME_ENS

WHERE SOMME= (SELECT min (SOMME) from SOMME_ENS)

;

INSERT INTO STOCK select ref_article, ref, prix, quantite from commande where reference = num ;

 

DELETE FROM COMMANDE WHERE REFERENCE = num;

END

;

 



Classé sous : replace, ref, trigger, create, old

Participer à cet échange

Pub



Appels d'offres

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS