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 :

Nom de champs dynamiques


Sujet :

SQL Oracle

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 12
    Points : 6
    Points
    6
    Par défaut Nom de champs dynamiques
    Bonjour,

    Je dois écrire une procédure PL/SQL qui doit effectuer sur "n" champs d'une table le même travail quand une insertion à lieu dans cette table.
    Ces champs ont pour nom "extra" suivi d'une valeur numérique séquentielle allant de 1 à n.

    J'aurai voulu savoir si il était possible d'écrire une boucle du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    FOR i IN 1..n LOOP
      :NEW.('extra' || i) := 10;
    END LOOP
    Merci d'avance pour votre aide.

  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
    Points : 3 609
    Points
    3 609
    Par défaut
    Non, ce n'est pas possible.

  3. #3
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Points : 1 197
    Points
    1 197
    Par défaut
    Citation Envoyé par plaineR Voir le message
    Non, ce n'est pas possible.
    Salut,

    Dans le trigger c'est vrai, mais on peut contourner ce problème :

    J'ai pris un exemple de 100 champs
    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
     
    DECLARE
       p1   VARCHAR2(32767):= 'insert into t (';
    BEGIN
       FOR i IN 1 .. 99
       LOOP
          p1 := p1 || 'extra' ||i|| ',';
       END LOOP;
       p1 := p1 || 'extra100 ) VALUES( ';
       FOR i IN 1 .. 99
       LOOP
          p1 := p1 || '10,';
       END LOOP;
       p1 := p1 || '10)';
       DBMS_OUTPUT.PUT_LINE (p1);
       EXECUTE IMMEDIATE (p1);
    END;
    /
    Remarque : il faut faire attention à la taille de p1

Discussions similaires

  1. Fonction avec Nom de champs dynamique
    Par Le_Phasme dans le forum Windows Forms
    Réponses: 1
    Dernier message: 12/11/2008, 18h12
  2. Nom de champ dynamique
    Par benkunz dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/07/2008, 13h50
  3. [Problème]Nombre et nom des champs dynamiques dans un form
    Par julienOriano dans le forum Struts 1
    Réponses: 17
    Dernier message: 10/04/2007, 15h32
  4. acces nom de champs dynamique
    Par piro dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/06/2006, 10h01
  5. Réponses: 4
    Dernier message: 13/09/2005, 11h50

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