|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : décembre 2007 Messages : 13 ![]() |
Salut,
dans Oracle je souhaiterais réaliser des traitements à des dates précises. En fait ce que je souhaite faire c'est l'équivalent d'un trigger mais qui serait déclenché par une date que je vais chercher dans ma BDD. Il me semble que les triggers ne peuvent être déclenchés que par des evenements de type INSERT UPDATE ou DELETE. Pour concretiser un peu tout ca : J'ai une table Annonce qui contient un attribut DateFin et un booléen Vendu. Bon on sent venir l'idée hein ! Ben ouais en fait je voudrais pouvoir passer Vendu à 0,1 ou 2 en fonction de certains paramètres, à la date DateFin. D'ou ma question : comment declencher un bloc PL/SQL automatiquement à chaque fois que sysdate=DateFin ? |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() dba Inscription : juillet 2007 Messages : 2 523 ![]() |
tu peux faire un job lancé quotidiennement qui va vérifier si sysdate=DateFin et faire le traitement si nécessaire.
http://oracle.developpez.com/guide/d...ages/dbms_job/ |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : décembre 2007 Messages : 13 ![]() |
A ouais merci pour l'idée je vais aller voir ca ... les jobs, je connais pas donc je vais allez me familiariser avec ca.
Cependant je vais peut être paraitre un peu exigeant mais j'aurai aimé avoir quelque chose qui puisse gérer le declenchement de la date à la seconde prés. |
|
|
00
|
|
|
#4 |
|
Membre éprouvé
![]() Inscription : mai 2002 Messages : 535 ![]() |
[A la seconde près]
Je confirme le propos de Jerome_Mtl Les JOB sont fait pour çà !!
__________________
Signé : Capitaine Jean-Luc Picard |
|
|
00
|
|
|
#5 | |
|
Expert Confirmé
![]() dba Inscription : juillet 2007 Messages : 2 523 ![]() |
Citation:
Et il y a aussi la possibilité de programmer dynamiquement l'heure future du déclenchement de ce job après un lancement (je n'ai pas testé mais ça doit être faisable facilement, je crois) et qu'il se lance au moment de la prochaine échéance. Dans ce cas, il faut faire attention de ne pas rater une ligne, surtout si il y a des intervalles proches... Genre, au temps T, tu fais ton traitement puis tu mets 2 secondes à déterminer quand aura lieu la prochaine échéance qui est à T + 1s donc c'est déjà passer (on est à T + 2s) et le job ne se lancera jamais - je fais dans le très bête mais c'est juste pour soulever la problématique... Et c'est pour ça que je prendrais plutôt ma première solution... J'imagine aussi la génération automatique d'un job associé à une ligne de table et qui se déclencherait en temps voulu, mais bon, le nombre de jobs est limité par une variable et avoir 3000 jobs qui traînent ce n'est pas une solution très propre... |
|
|
|
00
|
|
|
#6 | |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Citation:
|
|
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : décembre 2007 Messages : 13 ![]() |
Ok merci pour toutes ces reponses je devrai bien m'en sortir avec tout cas.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com