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

Langage SQL Discussion :

(debutant) Procedure SQL sous oracle


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 34
    Par défaut (debutant) Procedure SQL sous oracle
    Bonjour,


    J'ai deux tables VILLE1 VILLE2 de 6 lignes et 7 colonnes chacune et je veux ecrire une procedure qui compare chaque ligne colonne par colonne


    si ligne1 de VILLE1 est egale à ligne1 de VILLE2
    alors colonne 7 de VILLE2 = 'OK'
    incremente le compteur nbligneTrouve

    A la fin de la procedure
    afficher le nbrede ligne en pourcentage ( nbligneTrouve/6)

    Quelqu'un peut -il m'aider? ou il y a t-il un autre moyen de le faire je suis sous oracle
    Merci de votre aide

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 34
    Par défaut Plus claire
    Bonjour,
    je suis debutant et je souhaite ecrire une procedure pour mettre

    Je cherche à écrire une procédure à exécuter sous unix comme suit
    Pour chaque ligne de la table IdentifiantPersonne
    pour chaque ligne de la table IdentifiantPersonne
    si (nom, prénom) = (nom,prénom) de la ligne correspondante de la table PersonneConnu
    alors ecrire le champ de la colonne langue de IdentifiantPersonne dans la colonne clangue de PersonneConnu

    Exemple: Les 2 table n'ont pas de cle commun


    Table PersonneConnu

    N° Nom Prenom Age Metier Clangue
    1 Dupont Alain 22 Serveur
    2 Marie Tata 36 medecin
    3 Louis thomas 28 Ecrivain
    4 Flaure Laure 16 eleve
    5 Dupont Julien 36 medecin
    6 Duval Come 25 etudiant


    Table IdentifiantPersonne

    ident Nom Prenom age Fonction langue
    A Dupont Alain 50 Serveur Paris
    B Marie Tata 36 medecin Paris
    C Louis thomas 28 Ecrivain rome
    D Flaure pauline 15 eleve amsterdam
    E Coco Julien 36 medecin rome
    F Duval Come 22 etudiant paris



    pour ident =A et N° = 1 (nom, prenom) =(Dupont Alain) premiere ligne des 2 tables alors j'ecris 'Paris' dans la colonne Clangue
    incremente un compteur nbligneTrouve

    resultat attendu:avec la procedure


    N° Nom Prenom Age Metier Clangue
    1 Dupont Alain 22 Serveur Paris
    2 Marie Tata 36 medecin
    3 Louis thomas 28 Ecrivain
    4 Flaure Laure 16 eleve
    5 Dupont Julien 36 medecin
    6 Duval Come 25 etudiant

    Afficher le pourcentage nbligneTrouve/nbligne total)
    Dans cet exemple afficher en pourcentage 4/6

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 34
    Par défaut
    Je rappelle que c'est une Procedure SQL sous oracle que je veux mettre en place


    Merci pour votre reponse

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    Citation Envoyé par lightzeus
    Je rappelle que c'est une Procedure SQL sous oracle que je veux mettre en place
    Qui dit procédure implique d'utiliser le langage procédural de son SGBD ; par conséquent, vous auriez du poster dans le forum Oracle dans la partie PL/SQL.
    En l'occurence, vous n'avez besoin de PL pour écrire votre traitement car cette requête devrait suffire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    UPDATE PERSONNECONNU PC
    SET    CLANGUE = ( SELECT LANGUE
                       FROM   IDENTIFIANTPERSONNE IP
                       WHERE  PC.NOM    = IP.NOM
                       AND    PC.PRENOM = IP.PRENOM );
    Remarque : cette syntaxe n'est pas conforme vis-à-vis de la norme SQL car elle utilise un alias sur la table à mettre à jour.

    Cependant, je ne suis pas d'accord avec le contenu de votre table après traitement (ou alors je n'ai pas bien compris) ; pour moi, il devrait être :
    Table PersonneConnu
    N° Nom Prenom Age Metier Clangue
    1 Dupont Alain 22 Serveur Paris
    2 Marie Tata 36 medecin Paris
    3 Louis thomas 28 Ecrivain rome
    4 Flaure Laure 16 eleve
    5 Dupont Julien 36 medecin
    6 Duval Come 25 etudiant
    Les lignes de n° 1, 2 et 3 doivent être mises à jour, non ?

    Enfin, merci de préciser votre version d'Oracle.
    Merci !

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 34
    Par défaut
    version oracle 9i
    Oui les ligne 1, 2 et 3 doivent être mise à jour.
    Peut on utiliser un curseur et comment.

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    1/ la notion de curseur renvoie au PL et non au SQL donc consultez les tutoriels Oracle (Cf. http://oracle.developpez.com)
    2/ pourquoi faire un curseur si la requête que je vous ai donnée fonctionne ?

Discussions similaires

  1. Optimisation de requetes SQL sous oracle
    Par santana2006 dans le forum Oracle
    Réponses: 5
    Dernier message: 28/08/2006, 19h26
  2. Réponses: 4
    Dernier message: 18/01/2006, 10h33
  3. Débutant en SQL sous Linux
    Par DeVoN dans le forum Administration système
    Réponses: 4
    Dernier message: 01/12/2005, 15h22
  4. comment installer initjvm.sql sous Oracle 8i
    Par c_moi_c_moi dans le forum Oracle
    Réponses: 1
    Dernier message: 04/11/2005, 12h19
  5. [Debutant]Procedure stockee sous MSDE
    Par christophebmx dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/04/2004, 10h39

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