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 :

Programme à convertir


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2003
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 109
    Par défaut Programme à convertir
    Salut a tous,

    Jai un pti programme sql que je veux convertir en pl/sql mais je galere, pouvez vous m'aider?
    Merci

    Jai deux tables:
    La première : UTILISATEURS (ID_USER, NOM, ETAT) gère les utilisateurs.
    La seconde GROUPES (ID_USER, NOM_GROUP) gère les groupes assignés aux utilisateurs.

    Sachant que ETAT = 'Fatigue' ou 'En Forme'
    Je veux que tous utilisateurs dont l’ETAT est "FATIGUE" appartiennent à un nouveau groupe "BESOIN_VACANCES" en utilisant un curseur comme le montre le programme en bas:

    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
    DECLARE @CPT_ID as int --variable qui récupérera les CPT_ID
    DECLARE MyCursor CURSOR --mon curseur
    -- Pour tous les CPT_ID de UTILISATEUR qui ont un ETAT=FATIGUE
    for
    SELECT ID_USER from UTIL
        WHERE ETAT='FATIGUE'
        OPEN MyCursor -- j'initialise mon curseur
    -- je le rempli avec mon 1er CP_ID retourné par la requête
    FETCH MyCursor INTO @CPT_ID
    -- Tant que je n'ai pas traité tous les CPT_ID de le requête
    WHILE @@fetch_Status = 0
    BEGIN
        print @CPT_ID + ' - '
        INSERT into GROUPEs VALUES(@CPT_ID, 'BESOIN_VACANCES')
    -- je le rempli avec le CP_ID suivant retourné par la requête
        FETCH MyCursor INTO @CPT_ID
    END
    CLOSE myCursor -- je ferme mon curseur
    DEALLOCATE myCursor -- je libère la mémoire allouée à ce curseur
    Print '----------------- Terminé ------------------------'

  2. #2
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Euh, c'est quoi la question ? J'espère que tu ne nous demandes pas de faire ton travail à ta place.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 77
    Par défaut
    Et pourquoi tu veux employer un curseur?
    Et pourquoi pas le tout dans un seul select?

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2003
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 109
    Par défaut
    Citation Envoyé par plaineR Voir le message
    Euh, c'est quoi la question ? J'espère que tu ne nous demandes pas de faire ton travail à ta place.
    Non pas dutout, jai commence mais je bug tout le temp car je connais aps tres bien le pl/sql.


    Et pourquoi tu veux employer un curseur?
    Car je veux apprendre a utiliser un curseur, sa a l'air interessant.
    Je sais q'il ya d'autres methodes.

    Merci

  5. #5
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Citation Envoyé par Ryadus Voir le message
    Non pas dutout, jai commence mais je bug tout le temp car je connais aps tres bien le pl/sql.
    Dans ce cas je te conseille vivement de lire cette doc :
    http://sheikyerbouti.developpez.com/pl_sql/
    et plus particulièrement:
    http://sheikyerbouti.developpez.com/...=Chap1#L1.2.22
    et :
    http://sheikyerbouti.developpez.com/...=Chap1#L1.2.13

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 77
    Par défaut
    Voici un exemple qui devrait marcher. Ensuite, je te propose de le modifier petit à petit pour voir comment cela marche:
    - déclarer un curseur dans la partie declare
    - faire avec un fetch
    - ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    declare
    begin
    for rec in (select id_user from utilisateurs where ETAT in ('Fatigue','En Forme')) loop
        insert into groupes values (rec.id_user, 'BESOIN_VACANCES');
    end loop;
    commit;
    end;

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/02/2014, 14h28
  2. Réponses: 13
    Dernier message: 11/01/2007, 14h13
  3. [TP 7] Convertir un programme en Delphi en pascal
    Par diden138 dans le forum Turbo Pascal
    Réponses: 7
    Dernier message: 21/05/2006, 21h42
  4. Programme convertir hexadecimal
    Par raynox dans le forum C++
    Réponses: 2
    Dernier message: 26/11/2005, 23h16
  5. Convertir un programme Visual c++ vers C++ builder
    Par Skarlix dans le forum C++Builder
    Réponses: 11
    Dernier message: 16/10/2004, 22h51

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