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 :

insert into Insertions multiples


Sujet :

SQL Oracle

  1. #1
    Membre éprouvé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Par défaut insert into Insertions multiples
    Hello les gens,
    voila Il faut que je fasse un insert sur une table, jusque la rien de bien compliqué... seulement voila les valeurs pour chacun des champs de la table peuvent aller de 0 à n il faut que je fasse donc un insert pour chacune des différentes combinaisons...

    pour etre plus clair imaginons que l'on ait une table avec 3 champs C1, C2 et C3 différents.
    j'ai trois tableau T1, T2 et T3
    -> T1 contiens 2 valeurs destinées au champs C1
    -> T2 en contiens une destinée à C2
    -> et T3 en 9 destinées à C3

    il me faudra me débrouiller dans mon code pour inserer une ligne par combinaison, j'imagine qu'il doit bien y avoir un "truc" en pl/sql pour se simplifier la vie (je prefererai déleguer cela à pl/sql plutot que de le faire dans mon code (java))

    merci pour toutes vos contributions.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 500
    Par défaut
    A tester, mais est-ce que la solution suivante serait convenable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    FOR x IN T1.FIRST..T1.LAST
    LOOP
         FOR y IN T2.FIRST..T2.LAST
         LOOP
              FOR z IN T3.FIRST..T3.LAST
              LOOP
                   INSERT INTO table (C1, C2, C3)
                   VALUES (T1(x), T2(y), T3(z));
              END LOOP;
         END LOOP;
    END LOOP;

  3. #3
    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[

    QUOTE]digit77
    FOR x IN T1.FIRST..T1.LAST
    .....
    [/QUOTE]

    C'est quoi ces First el Last sur des tables ?

    Merci.
    LBO72

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 500
    Par défaut
    Ce ne sont pas des tables, ce sont des tableaux...
    Faut relire l'énoncé !

  5. #5
    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
    Ok, autant pour moi

    LBO72.

  6. #6
    Membre éprouvé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Par défaut
    bon ok, et si les tableaux etaient plutot des chaines de caractères séparés par des , genre 'une valeur', 'une autre valeur', '' etc... la boucle aurait quelle tête à ce moment ?

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 500
    Par défaut
    Dans ce cas, c'est la galère.
    Pour moi, il faut se débrouiller à initialiser ces tableaux à partir des chaînes de caractères en les splitant, de manière à retomber sur l'algo que je t'ai donné.

  8. #8
    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

  9. #9
    Membre éprouvé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Par défaut
    merci je prefere le faire avec java je laisse le post ouvert encore un peu

  10. #10
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Quelle version ?

  11. #11
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    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
    WITH t1 AS (SELECT 'V1, V2' AS a FROM dual),
    	t2 AS (SELECT '1, 2' AS a FROM dual),
    	t3 AS (SELECT 'un, deux, trois' AS a FROM dual)
    SELECT extractvalue(tab1.COLUMN_VALUE,'/x') c1, 
    	extractvalue(tab2.COLUMN_VALUE,'/x') c2, 
    	extractvalue(tab3.COLUMN_VALUE,'/x') c3
    FROM t1, TABLE(xmlsequence(EXTRACT(XMLTYPE('<list><x>'||REPLACE(t1.a,', ','</x><x>')||'</x></list>'),'/list/x'))) tab1,
    	t2, TABLE(xmlsequence(EXTRACT(XMLTYPE('<list><x>'||REPLACE(t2.a,', ','</x><x>')||'</x></list>'),'/list/x'))) tab2,
    	t3, TABLE(xmlsequence(EXTRACT(XMLTYPE('<list><x>'||REPLACE(t3.a,', ','</x><x>')||'</x></list>'),'/list/x'))) tab3
     
    C1	C2	C3
    V1	1	un
    V1	1	deux
    V1	1	trois
    V1	2	un
    V1	2	deux
    V1	2	trois
    V2	1	un
    V2	1	deux
    V2	1	trois
    V2	2	un
    V2	2	deux
    V2	2	trois

  12. #12
    Membre éprouvé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Par défaut
    heu 4 il me semble sdk 1.4 pk ?

  13. #13
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Version de la base de donnée !!

  14. #14
    Membre éprouvé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Par défaut
    autant pour moi ORACLE v 9i

  15. #15
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Mon code précédent marche alors.

  16. #16
    Membre éprouvé

    Inscrit en
    Juin 2005
    Messages
    1 155
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 1 155
    Par défaut
    merci, je pourrai voir les déclarations des tab et des t stp ?

  17. #17
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    T'as essayé le code ? Il n'y a aucune déclaration, il te suffit de remplacer les chaines de caractères du début par tes chaines !

  18. #18
    Invité
    Invité(e)
    Par défaut
    Bonjour à tous,

    Moi aussi j'ai un problème avec un INSERT INTO sous VB Express.

    Si des fois, vous pouvez jeter un oeil sur mon problème, ce serait avec plaisir.

    http://www.developpez.net/forums/sho...d.php?t=457567

    Merci

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    J'apprécierai que tu essayes de faire une recherche dans le forum et la doc Oracle plutôt que fagociter les discussions des autres

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

Discussions similaires

  1. [MySQL] INSERT INTO Multiple
    Par Swarovski dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 20/02/2015, 16h14
  2. Insert multiple (INSERT INTO ...VALUES SELECT...)
    Par acognard dans le forum Débuter
    Réponses: 7
    Dernier message: 13/05/2014, 13h42
  3. INSERT INTO: insert 0 par défaut pour un champ de type FLOAT
    Par siva27 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 03/09/2013, 15h35
  4. [MySQL] Insert into multiple dans même table
    Par andaman dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 08/01/2011, 16h51
  5. [MySQL] insert into multiple
    Par bailamos dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 01/07/2009, 18h51

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