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 :

MAJ variable en fonction du nom de la colonne


Sujet :

PL/SQL Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 12
    Points : 11
    Points
    11
    Par défaut MAJ variable en fonction du nom de la colonne
    Bonjour,

    La fonction met bien à jour des variables en fonction du nom de la colonne
    mais il faut prévoir autant de lignes "replace" qu'il y a de colonnes.
    N'y aurait-il pas un moyen de mettre à jour les variables en fonction d'un id de colonne ?
    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
    27
    28
    29
    30
    31
    32
    33
    34
    FUNCTION func_maj  RETURN VARCHAR2 
    IS
     
      ln$mon_texte maTable.monChamp%type;
     
      cursor c1
      is
        select * from maTable2 where monChamp = xxx;
     
    BEGIN
     
        select monChamp2 into ln$mon_texte
        from maTable1
        where monChamp1 = 1;
     
    -- ln$mon_texte est égal à par exemple
    -- blablabla [nomChamp1] blablabla [nomChamp2] blablabla
     
        FOR enrc1 IN c1
        LOOP
    -- comme cela ça fonctionne 
    -- mais je suis obligé de faire une ligne par nom de champ
     
        ln$mon_texte := replace(ln$mon_texte,'[nomChamp1]', enrc1.nomChamp1);
     
    -- n'y a-t-il pas une possibilité de faire une boucle sur le nom des champs en fonction d'un id
    -- par exemple
    -- ln$mon_texte := replace(ln$mon_texte,'[' || enrc1.column(i).name || ']', enrc1.column(i).value);
     
        end loop;
     
        return ln$mon_texte;
     
    END func_maj;

  2. #2
    Membre éprouvé
    Inscrit en
    Avril 2006
    Messages
    1 024
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 1 024
    Points : 1 294
    Points
    1 294
    Par défaut
    Si le nom des champs est fixe, la requête est simplement du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select 'blablabla ['||monChamp1||'] blablabla ['||monChamp2||'] blablabla etc...'
     into ln$mon_texte
    where monCham1 = 1
    Si on veut quelque chose de totalement générique, je pense que le plus simple est de générer une requête dynamiquement à partir de la vue USER_TAB_COLUMNS puis la jouer avec un "execute immediate [requete_dynamique] into ln$mon_texte"

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    merci pour la réponse
    mais mon select fait référence à un package
    et je ne sais ou je ne peux pas récupérer le nom des champs via la table USER_TAB_COLUMNS
    si tu as une autre idée je suis preneur
    encore merci pour ta réponse

  4. #4
    Membre éprouvé
    Inscrit en
    Avril 2006
    Messages
    1 024
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 1 024
    Points : 1 294
    Points
    1 294
    Par défaut
    Ah bah non, j'ai pas d'autre solution puisque c'est la vue que te fourni oracle exactement pour ça... ça m'étonne que tu n'y ait pas accés... ou alors si tu accède a une autre schéma, il faut que tu aille dans la vue ALL_TAB_COLUMNS et sans doute que tu t'ouvres des droits...

Discussions similaires

  1. Variable en fonction du nom de page
    Par cartman1er dans le forum jQuery
    Réponses: 6
    Dernier message: 20/09/2012, 02h34
  2. Variable en fonction du nom de fichier
    Par nicolasf85 dans le forum MATLAB
    Réponses: 3
    Dernier message: 08/10/2009, 10h50
  3. [MySQL] Nom variable PHP est le nom d'une colonne
    Par baderahmed dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 16/07/2009, 13h44
  4. Réponses: 9
    Dernier message: 22/08/2007, 13h25
  5. Réponses: 9
    Dernier message: 22/08/2007, 13h25

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