IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

Comment déclencher automatiquement un bloc PL/SQL à une date précise


Sujet :

PL/SQL Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 13
    Points : 10
    Points
    10
    Par défaut Comment déclencher automatiquement un bloc PL/SQL à une date précise
    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 ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    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/

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    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.

  4. #4
    Membre confirmé
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Points : 562
    Points
    562
    Par défaut
    [A la seconde près]
    Je confirme le propos de Jerome_Mtl Les JOB sont fait pour çà !!
    Signé : Capitaine Jean-Luc Picard

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Borni Gloim Voir le message
    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.
    Tu peux programmer un job qui se lance toutes les secondes, mais à mon avis, ça me parait un peu excessif, surtout si tu brasses de grosses tables. Moi je ferais un job qui passe toutes les minutes à moins qu'il y ait un réel besoin d'une telle précision. (et il faut voir combien de temps prend ton traitement...)

    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...

  6. #6
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Citation Envoyé par Borni Gloim Voir le message
    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.
    un planificateur des tâches en principe c'est précis... lis donc le tutoriel et tu verras que ça répond parfaitement à ton besoin

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Ok merci pour toutes ces reponses je devrai bien m'en sortir avec tout cas.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#] Comment récupérer le numéro de semaine d'une date ?
    Par farfadet dans le forum Windows Forms
    Réponses: 9
    Dernier message: 17/07/2013, 16h33
  2. comment connaitre le nom du jour d'une date
    Par 21247692 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 27/09/2007, 14h24
  3. Comment extraire le mois à partir d'une date?
    Par toumoham dans le forum Paradox
    Réponses: 1
    Dernier message: 17/05/2006, 13h37
  4. [SQL] Une date en fonction du num de semaine
    Par frederic_s dans le forum Oracle
    Réponses: 1
    Dernier message: 07/03/2006, 11h52
  5. Réponses: 5
    Dernier message: 23/02/2006, 22h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo