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

SQL Oracle Discussion :

curseur et valeur d'une variable


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti

    Inscrit en
    Décembre 2003
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 18
    Par défaut curseur et valeur d'une variable
    Bonjour à tous,

    alors tout d'abord mon environnement de travail :
    * bd Oracle 8i,
    * toad 9.0.1.8 pour attaquer la bd.

    J'ai une procédure PL/SQL dans laquelle j'ai déclaré le curseur suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CURSOR c1 IS
    SELECT code,day1,day2,day3,day4,day5,day6,day7,
    FROM t1
    GROUP BY code,day1,day2,day3,day4,day5,day6,day7;
    Je veux ensuite boucler sur le curseur + boucler sur chaque champ day du curseur:

    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
        for d in 1..7
            loop
                v_a_Day := 'c1.day' || to_char(d);
                if (v_a_day is not null) then
                    for i in 1..length(v_a_Day)
        		    loop
        			    if (upper(substr(v_a_Day,i,3))='XXX') then
        				   v_compteur_XXX:=v_compteur_XXX+1;
        			    end if;
        			    if (upper(substr(v_a_Day,i,3))='YYY') then
        				   v_compteur_YYY:=v_compteur_YYY+1;
        			    end if;
        		    end loop;
                end if;
            end loop;
    Cela ne fonctionne bien sûr pas car Oracle n'interprète pas la valeur de ma variable v_a_day comme moncurseur.monchamp mais comme une chaine de caractères. Quelqu'un saurait il comment dire à Oracle de prendre le contenu de v_a_day comme une variable et non comme une chaine de caractères?

    Merci

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    c'est pas possible à faire comme ça... éventuellement en sql dynamique mais pour 7 valeur, moi je le ferais en dur d'autant qu'il n'y a aucune chance d'ajouter une autre colonne day

  3. #3
    Membre éprouvé
    Inscrit en
    Juin 2003
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 107
    Par défaut
    'C1.day' est utilisée comme chaîne de chaîne de caractères et pas comme Curseur.valeur.

    Essayer c1.day sans ‘ ‘; si t1.day est de type date, utiliser to_char.

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    CA NE MARCHE PAS COMME CA. Il faut mettre le nom de la colonne du curseur en dur ou passé en SQL dynamique ce qui ne sert à rien puisque le modéle ne l'est pas dynamique

  5. #5
    Membre averti

    Inscrit en
    Décembre 2003
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 18
    Par défaut
    Et bien merci quand même. Effectivement comme dit Orafrance je vais le faire en dur mais ca me fait de la duplication de code ce que je voulais eviter .

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    avec une fonction et des paramètres adaptées tu ne dupliqueras que l'appel de la fonction

  7. #7
    Membre averti

    Inscrit en
    Décembre 2003
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 18
    Par défaut
    c vrai je n'y avais pas pensé .

    Merci

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

Discussions similaires

  1. [XSL] Comment modifier la valeur d'une variable?
    Par sorcer1 dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 17/02/2010, 13h26
  2. récupération d'une valeur dans une variable
    Par jh0483 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/08/2005, 09h49
  3. Réponses: 2
    Dernier message: 16/08/2005, 09h43
  4. afficher dans une boite de dialogue la valeur d'une variable
    Par micknic dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 10/07/2005, 09h25
  5. Intercepter le changement de valeur d'une variable
    Par Captain_JS dans le forum C++Builder
    Réponses: 5
    Dernier message: 07/01/2005, 08h04

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