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

Oracle Discussion :

DBMS_JOB ca ne fonctionne pas


Sujet :

Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 31
    Points : 24
    Points
    24
    Par défaut DBMS_JOB ca ne fonctionne pas
    Bonjour !

    Je souhaite qu'une procedure stocké s'execute le premier jour de chaque mois.

    Pour cela je pensais facilement utiliser DBMS_JOB.

    J'ai regarder le nombre de job que je peux programmer

    SQL> show parameter job_queue_processes ;

    NAME TYPE VALUE
    ---------------------------- ----------- ------------------------------
    job_queue_processes integer 5

    ma version de oracle
    SQL> show release
    release 801070400

    je regarde les jobs que j'ai en queue
    SQL> select
    2 JOB,
    3 NEXT_DATE
    4 from
    5 sys.job$;

    JOB NEXT_DAT
    ---------- --------
    1 11/05/06
    21 11/05/06
    41 11/05/06
    61 11/05/06

    j'en ai 4 sur 5 donc c'est bon
    pour eviter d'eventuels soucis je jai augmenter la taille de la queue.

    SQL> alter system set job_queue_processes=10;
    Système modifié.
    SQL> commit;
    Validation effectuée.

    SQL> show parameter job_queue_processes ;

    NAME TYPE VALUE
    ---------------------------- --------- ------------------------------
    job_queue_processes integer 10


    passons maintenant a la creation de mon job
    SQL> begin
    2 dbms_job.isubmit('10','exec HISTDETTE',add_months(trunc(sysdate,'MM'),1),'add_months(trunc(sysdate,''MM''),1)');
    3 commit ;
    4 end ;
    5 /
    begin
    *
    ERREUR à la ligne 1 :
    ORA-06550: line 1, column 98:
    PLS-00103: Encountered the symbol "HISTDETTE" when expecting one of the following:
    := . ( @ % ;
    The symbol "; was inserted before "HISTDETTE" to continue.
    ORA-06512: at "SYS.DBMS_JOB", line 79
    ORA-06512: at "SYS.DBMS_JOB", line 131
    ORA-06512: at "SYS.DBMS_JOB", line 96
    ORA-06512: at line 2

    et la je ne vois pas ce qui n'est pas correct
    10 : Mon numero de job n'est pas deja utilisé
    'exec HISTDETTE' : Quand je lance manuellement exec HISTDETTE ca fonctionne tres bien
    add_months(trunc(sysdate,'MM'),1) : Prochaine execution (le 1er du mois suivant)
    'add_months(trunc(sysdate,''MM''),1)' : Intervalle, le 1er de chaque mois

    Si quelqu'un voit ce qui ne va pas, peut il m'eclairer des ses lumières

    Merci

  2. #2
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SQL> begin
    2 dbms_job.isubmit('10','exec HISTDETTE',add_months(trunc(sysdate,'MM'),1),'add_months(trunc(sysdate,''MM''),1)');
    3 commit ;
    4 end ;
    5 /
    Ajoutez un ';':

    Merci d'utiliser les balises de formatage pour améliorer la lisibilité.

  3. #3
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Désolé, en fait, il faut aussi supprimer le 'exec' qui est une commande sqlplus ...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SQL> begin
    2 dbms_job.isubmit('10','HISTDETTE;',add_months(trunc(sysdate,'MM'),1),'add_months(trunc(sysdate,''MM''),1)');
    3 commit ;
    4 end ;
    5 /

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 31
    Points : 24
    Points
    24
    Par défaut Meeerrrcciiiii
    j'ai lancé ceci
    SQL> begin
    2 dbms_job.isubmit('10','HISTDETTE;',add_months(trunc(sysdate,'MM'),1),'add_months(trunc(sysdate,''MM''),1)');
    3 commit ;
    4 end ;
    5 /

    Procédure PL/SQL terminée avec succès.


    Merci encore

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 27/01/2004, 11h14
  2. [FP]Writeln ne fonctionne pas !
    Par néo333 dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 01/11/2003, 23h47
  3. UNION qui ne fonctionne pas
    Par r-zo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/07/2003, 10h04
  4. Un Hint sur un PopupMenu ne fonctionne pas !!??
    Par momox dans le forum C++Builder
    Réponses: 6
    Dernier message: 26/05/2003, 16h48
  5. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 00h10

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