newbie en BD demande différence entre Procédure Stockée et Trigger ...

newbie en BD demande différence entre Procédure Stockée et Trigger ... - Programmation

Marsh Posté le 24-04-2001 à 16:10:05    

Bonjour, bonjour ;)
Tout est dans le titre.
 
Merci ;)


---------------
Asus U80v (WX016V) (Debian 64bits) + Asus 1015PEM (Ubuntu 64bits) + Freebox v6 + Synology DS211
Reply

Marsh Posté le 24-04-2001 à 16:10:05   

Reply

Marsh Posté le 24-04-2001 à 16:14:28    

Ce nest pas a prendre comme parole d'evangile, mais il me semble qu'une procedure stockee est comme une fonction, c'est a dire une suite de commande que tu appelle quand t'en a besoin, alors qu'un trigger est une suite de commandes qui s'execute lors de condition particulieres..
A confirmer..

 

[edit]--Message édité par trictrac--[/edit]

Reply

Marsh Posté le 24-04-2001 à 16:29:49    

Non, pas tout à fait ;)
 
Pour la procedure stockée, c'est ça en effet.
 
Pour le trigger, dans l'absolu, tu n'est censé rien faire d'autre que d'éxécuter des procédures stockées/fonctions
 
En effet, TRIGGER = "Déclencheur" en français.
 
Mais généralement, les SGDB-R permettent de faire des trigger plus complexe, qu'on peut assimiler à TRIGGER + procédure stockée

Reply

Marsh Posté le 24-04-2001 à 16:30:38    

...je confirme presque mot pour mot


---------------
Je ne suis ni pour, ni contre, bien au contraire  
Reply

Marsh Posté le 24-04-2001 à 16:34:04    

en bref, j'avais juste koi (j'ai vu les trigger sous oracle...)

Reply

Marsh Posté le 24-04-2001 à 16:37:02    

oki merci beaucoup tout le monde  :jap:  
 
Voilà mon ch'tit pbm:  
Je suis sous Oracle.
Est-ce que je peux déclencher de manière hebdomadaire (genre tous les vendredi) une procédure stockée à partir d'un trigger qui checkerait le "sysdate" ? Si oui, comment ?
Si vous avez une autre solution, je suis preneur aussi ;)
 
Encore merci ;)
 
(là j'avoue que pour cette question je n'ai pas fait de recherche sur le forum :( je sais c'est pas bien)

 

[edit]--Message édité par lexdu--[/edit]


---------------
Asus U80v (WX016V) (Debian 64bits) + Asus 1015PEM (Ubuntu 64bits) + Freebox v6 + Synology DS211
Reply

Marsh Posté le 24-04-2001 à 16:38:42    

Un truc qu'on a oublié de préciser :
 
Un trigger est associé à une/des action(s) sur une table.
 
=> Exemple :
Sous M$ SQL, comment envoyer un mail lors de la mise à jour d'une table. (titles)
 
CREATE TRIGGER reminder
ON titles
FOR INSERT, UPDATE, DELETE

AS
    EXEC master..xp_sendmail 'MaryM',  
    'Don''t forget to print a report for the distributors.'
GO
 
 
(Exemple MSDN Library)
master..xp_sendmail est une procédure stockée système, du shéma 'master'

Reply

Marsh Posté le 24-04-2001 à 16:39:52    

lexdu a écrit a écrit :

Si vous avez une autre solution, je suis preneur aussi ;)



Je peux regarder ça ce soir dans mes cours d'Oracle...
Je les ai pas sous la main là...

Reply

Marsh Posté le 24-04-2001 à 16:41:17    

lexdu a écrit a écrit :

oki merci beaucoup tout le monde  :jap:  
 
Voilà mon ch'tit pbm:  
Je suis sous Oracle.
Est-ce que je peux déclencher de manière hebdomadaire (genre tous les vendredi) une procédure stockée à partir d'un trigger qui checkerait le "sysdate" ? Si oui, comment ?
 




 
il me semble que les triggers ne se déclenchent que si il  
y altération de la table visée. donc je pense pas que la
date puisse être l'élément déclencheur. A confirmer...


---------------
Je ne suis ni pour, ni contre, bien au contraire  
Reply

Marsh Posté le 24-04-2001 à 16:46:27    

Bah si je checke l'état de la table DUAL (UPDATE) et plus précisemment le champ sysdate, je dois pouvoir faire déclencher mon trigger à la date voulue (si tant est que je puisse retrouver "vendredi" dans la valeur retournée)


---------------
Asus U80v (WX016V) (Debian 64bits) + Asus 1015PEM (Ubuntu 64bits) + Freebox v6 + Synology DS211
Reply

Marsh Posté le 24-04-2001 à 16:46:27   

Reply

Marsh Posté le 24-04-2001 à 16:47:14    

Je sais qu'on peu schéduler des procédures stockées sous Oracle...
Mais je sais plus comment...
Un trigger sur la table DUAL ne me semble pas complètement recommandé (et je pense impossible ;), heureusement)
 
Mais il doit y avoir un autre moyen quelquepart...

Reply

Marsh Posté le 24-04-2001 à 16:49:51    

lexdu > DUAL n'existe pas en fait...
C'est pas une table.
C'est une entité logique dans laquelle s'éxécute toutes les fonctions...
 
en fait quand tu fais "SELECT SYSDATE FROM DUAL", SYSDATE n'est pas un champ, mais une fonction sans paramètres...
 
Crée une fonction "GETDATE" par exemple et essaie de l'éxécuter seule, tu verras... Il te faudra mettre une clause "FROM DUAL"

Reply

Marsh Posté le 24-04-2001 à 16:57:07    

lexdu > Logiquement, si tu parles de traitement périodique, tu dois avoir quelque part un outil de gestion des batchs... Qui te permet de lancer ton traitement quand tu veux. Par exemple, une "crontab".
 
Un trigger sur dual, effectivement, c'était plutôt une mauvaise idée ;)
 
Sinon, Lucille :love: t'a tout dit.

Reply

Marsh Posté le 24-04-2001 à 16:58:12    

tu ne peux pas faire de trigger sur la date, vu qu'il faudrait que le trigger soit lancé H24 pour savoir s'il doit s'activer, ce qui boufferait trop de ressource sur le server (a l'echelle de milliers de triggers).
Il me semble que c'est pareil en php, tu ne peut pas faire un prog qui se lance tout seul a une certaine date sans le faire boucler dans le vent jusqu'a cete date, ce qui n'est pas top au niveau des ressource du server
(genre ssave database MYsql qui tournerait en tache de fond sur le server..)

Reply

Marsh Posté le 24-04-2001 à 16:58:25    

oki doki, je cherche encore alors ...
 
mais j'aimerais pouvoir faire tout çà sans avoir à utiliser un scheduler genre ACTA !!!
çà serait con et cher pour une toute petite fonction comme çà ;)


---------------
Asus U80v (WX016V) (Debian 64bits) + Asus 1015PEM (Ubuntu 64bits) + Freebox v6 + Synology DS211
Reply

Marsh Posté le 24-04-2001 à 16:59:28    

Y'a qu'un 'L' à Lucile :p


---------------
-- Censored by Joce -- :D
Reply

Marsh Posté le 24-04-2001 à 17:01:13    

Merci Lucile  :sol:


---------------
Asus U80v (WX016V) (Debian 64bits) + Asus 1015PEM (Ubuntu 64bits) + Freebox v6 + Synology DS211
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed