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 :

Exécution en parallèle de plusieurs procédures


Sujet :

PL/SQL Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Points : 13
    Points
    13
    Par défaut Exécution en parallèle de plusieurs procédures
    Bonjour,

    Je voudrais exécuter plusieurs procédures à la fois sur Oracle.
    J'ai une procédure Procédure_globale (paramètre1) qui comporte plusieurs procédures :
    • procédure1 (paramètre1);
    • procédure2 (paramètre1);
    • procédure3 (paramètre1);


    Quand j'exécute sous SQL*Plus : Procédure_globale (paramètre1), ça lance la procédure1 puis procédure2 puis procédure3.

    Je voudrais lancer les trois procédures à la fois dans trois sessions Oracle différentes : est-ce qu'il y a possibilité de le faire ?

    J'ai essayé de changer ma Procédure_globale (paramètre1) :
    procédure1 (paramètre1) & procédure2 (paramètre1) & procédure3 (paramètre1);

    Mais ça ne marche pas.

  2. #2
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Ce n’est pas très claire ce que vous voulez obtenir.
    En principe, vous pouvez utiliser dbms_job/dbms_scheduler dans proc _globale pour programmer l’exécution des proc1, proc2 et proc3.

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2011
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 56
    Points : 77
    Points
    77
    Par défaut
    Bonjour,
    Vous pouvez utiliser DBMS_SCHEDULER et vous devez être sur que les paramétres PARALLEL_* sont bien renseignés avec le nombre maximum de parallélisme.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Points : 13
    Points
    13
    Par défaut salut
    bonjour , merci pour vos réponse

    comment puis je utiliser le dbms_scheduler , et aussi le paramétre parrallél
    pouvez me donner un exemple s'il vous plait pour que je puisse l'utiliser , en reprenant le méme exemple

    merci pour votre soutien

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Points : 13
    Points
    13
    Par défaut
    bonjour ,

    je suis allez voir le statut de ma procédure globale 'RBVQPLNC' qui est d ans le package 'RBVQAALM'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select parallel from user_procedures where procedure_name LIKE 'RBVQPLNC' and object_name ='RBVQAALM';
    et j'ai trouvé que parallel ='NO' ,

    puis je modifier cette valeur et le mettre à YES puis exécuter ??

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Points : 13
    Points
    13
    Par défaut
    C'est bon j'ai trouvé la solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    create or replace procedure test_sofiane  (p_fic IN varchar2)  as 
     
     
    BEGIN
     
        DBMS_JOB.iSUBMIT('1553', 'insert into test (DATE_CHARGEMENT, ROBUSTEZ0 ) values (sysdate , 1);', SYSDATE, 'SYSDATE + 10/1440');
        DBMS_JOB.iSUBMIT('1554', 'insert into test (DATE_CHARGEMENT, ROBUSTEZ0 ) values (sysdate , 2);', SYSDATE, 'SYSDATE + 10/1440');
        DBMS_JOB.iSUBMIT('1555', 'insert into test (DATE_CHARGEMENT, ROBUSTEZ0 ) values (sysdate ,3);', SYSDATE, 'SYSDATE + 10/1440');
        DBMS_JOB.iSUBMIT('1556', 'insert into test (DATE_CHARGEMENT, ROBUSTEZ0 ) values (sysdate ,4);', SYSDATE, 'SYSDATE + 10/1440');
        DBMS_JOB.iSUBMIT('1557', 'insert into test (DATE_CHARGEMENT, ROBUSTEZ0 ) values (sysdate ,5);', SYSDATE, 'SYSDATE + 10/1440');
     
        DBMS_JOB.iSUBMIT('1558', 'INSERT INTO RBVQTMER(QI_FILIAL, ANNO , MES, TYPE_VPVU, MERCADO) SELECT QI_FILIAL, ANNO , MES, TYPE_VPVU,MERCADO FROM RBVQTMER_LOAD;' , SYSDATE, 'SYSDATE + 10/1440');
     
        DBMS_JOB.iSUBMIT('1559', 'insert into test (DATE_CHARGEMENT, ROBUSTEZ0 ) values (sysdate ,6);', SYSDATE, 'SYSDATE + 10/1440');
        DBMS_JOB.iSUBMIT('1560', 'insert into test (DATE_CHARGEMENT, ROBUSTEZ0 ) values (sysdate ,7);', SYSDATE, 'SYSDATE + 10/1440');
        DBMS_JOB.iSUBMIT('1561', 'insert into test (DATE_CHARGEMENT, ROBUSTEZ0 ) values (sysdate ,8);', SYSDATE, 'SYSDATE + 10/1440');
     
        DBMS_JOB.iSUBMIT('1562','INSERT INTO RBVQTMME(QI_FILIAL, FECHA ,TYPE_VPVU ,USUARIO, FECHA_MOD , MERCADO )SELECT QI_FILIAL, FECHA ,TYPE_VPVU ,USUARIO, FECHA_MOD , MERCADO FROM RBVQTMME_LOAD ;', SYSDATE, 'SYSDATE + 10/1440');
     
        DBMS_JOB.iSUBMIT('1563', 'insert into test (DATE_CHARGEMENT, ROBUSTEZ0 ) values (sysdate ,9);', SYSDATE, 'SYSDATE + 10/1440');
        DBMS_JOB.iSUBMIT('1564', 'insert into test (DATE_CHARGEMENT, ROBUSTEZ0 ) values (sysdate ,10);', SYSDATE, 'SYSDATE + 10/1440');
        DBMS_JOB.iSUBMIT('1565', 'insert into test (DATE_CHARGEMENT, ROBUSTEZ0 ) values (sysdate ,11);', SYSDATE, 'SYSDATE + 10/1440');
        commit;
     
     
       end test_sofiane;
    Toutes ces commandes se lancent en même temps.

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

Discussions similaires

  1. [WD19] Exécuter plusieurs procédures en même temps
    Par lololebricoleur dans le forum WinDev
    Réponses: 2
    Dernier message: 30/01/2014, 11h39
  2. Réponses: 2
    Dernier message: 17/10/2013, 22h28
  3. [MySQL] Exécuter une requête sur plusieurs serveurs MySQL
    Par sirbaldur dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 19/11/2007, 18h02
  4. [Thread] Exécuter la même instance plusieurs fois
    Par Nairolf7 dans le forum Concurrence et multi-thread
    Réponses: 3
    Dernier message: 21/04/2006, 22h07
  5. ProgressBar avec plusieurs procédures
    Par elifqaoui dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 08/09/2002, 18h03

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