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 :

Problème sur ALTER TABLE ADD (colonne)


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Septembre 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1
    Par défaut Problème sur ALTER TABLE ADD (colonne)
    Bonjour a tous
    Je n'arrive pas a me depatouiller en sql ou plsql pour rajouter un nombre de champs dans une table x,ces nouveaux champs proviennent en fait du contenue d'une table Y sensee evoluer.
    EX: table y ayant une colonne champ nom
    nom
    ch1
    ch2
    ch3
    ....

    et faire un alter table add sur la table Y qui posse deja 2 champs anc1 et anc2 pour avoir en colonne

    anc1,anc2,ch1,ch2,ch3,..

    Merci a celui qui trouveras la solution.
    Je travaile que sur un serveur oracle.

  2. #2
    Membre éprouvé Avatar de reno_tidus
    Profil pro
    Inscrit en
    Août 2007
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 132
    Par défaut
    Inutile de poster 2 fois pour commencer, tu n'auraas pas plus de réponse et tu risque de te faire engueulé

    Je ne suis pas sur d'avoir bien compris, ta table Y possède une colonne nom mais ch1, ch2 et ch3 sont des valeurs de cette colonne ou d'autres colonnes

  3. #3
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    avec plsql je ferais
    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
     
    SQL> create table x(anc1 number, anc2 number);
     
    Table created.
     
    SQL> create table y(nom varchar2(3));
     
    Table created.
     
    SQL> insert into y values('ch1');
     
    1 row created.
     
    SQL> insert into y values('ch2');
     
    1 row created.
     
    SQL> insert into y values('ch3');
     
    1 row created.
     
    SQL> exec for t in (select nom from y) loop execute immediate 'alter table x add ('||t.nom||' number)'; end loop
     
    PL/SQL procedure successfully completed.
     
    SQL> desc x
     Name                    Null?    Type
     ----------------------- -------- ----------------
     ANC1                             NUMBER
     ANC2                             NUMBER
     CH1                              NUMBER
     CH2                              NUMBER
     CH3                              NUMBER

  4. #4
    Membre éclairé Avatar de LBO72
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Par défaut
    Salut Laurent,

    Ta solution est astucieuse il fallait y penser.

    Merci.
    LBO72.

  5. #5
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    merci mais quand je lis

    une table Y sensee evoluer.

    je ne suis toujours très sceptique

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 193
    Par défaut
    salut a tous,

    bon je cherchais comment ajouter des colonnes dans une table existante et pleine. et je suis tombé sur ce post !

    dans l espoire de ne pas parraitre un peu idiot, a quoi correcpond le 't' dans cette commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    exec FOR t IN (SELECT nom FROM y) loop execute immediate 'alter table x add ('||t.nom||' number)'; end loop
    merci par avance.

    sauf s'il existe un moyen plus simple pour ajouter qlqs colonne dans une table sans y modifier le contenue ?

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

Discussions similaires

  1. ordre des colonnes après un alter table add
    Par Etienne5685 dans le forum Développement
    Réponses: 2
    Dernier message: 30/05/2011, 18h21
  2. Réponses: 3
    Dernier message: 27/06/2008, 13h57
  3. Problème requête ALTER TABLE
    Par 1tsiMat dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 29/06/2006, 13h16
  4. Problème d'alter table dans une procédure stockée
    Par Oluha dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 16/03/2005, 09h19

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