Insertion donner sous oracle

Résolu
Bonjour,
j'ai voulu insérer deux ligne dans un tableau nomé livre que je vient de crée
pour insérer une seul ligne j'avais a taper la commande
INSERT INTO livre (code_livre,titre,themes,date_edit,nb_pages)
VALUES (60,'introduction to database deseign','base de donnée',to_date('2001/10/23','YYYY/MM/DD'),300) ;


comment je peux faire pour pouvoir insérer plusieurs ligne a la foi c'est a dire en exécutant une seul commande sql
j'ai penser que mettre par exemple
INSERT INTO livre (code_livre,titre,themes,date_edit,nb_pages)
VALUES (60,'introduction to database deseign','base de donnée',to_date('2001/10/23','YYYY/MM/DD'),300) ;
INSERT INTO livre (code_livre,titre,themes,date_edit,nb_pages)(30,'Programmation OO','base de donnée',to_date('2001/01/14','YYYY/MM/DD'),250);


puit lancer l'exécusion va faire l'affaire mais ca ne marche pas
es ce que quelqu'un pourrais me donner une solution svp
merci
Configuration: Windows XP
Firefox 3.0.15

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. il ny a pas un moyen de fusionner ces deux commonde insert en une seul commande peut etre
    es ce que quelqu'un peux me proposer une solution
    1. et non ! c'est un insert à la fois.

      note que tu peux insérer plusieurs lignes en provenance d'autres tables:
      insert into tabledest(col1{, coln}) select expr1{, exprn} from tablesrc1{, tablesrcn} where ...
      seul impératif : l'ordre des colonnes renvoyées par le select doit correspondre à l'ordre des colonnes à alimenter
      1. salut
        peux tu me donner un exemple reel svp et pas la commande en mode général
        je suis encore débutant dans le domaine
        insert into tabledest(col1{, coln}) select expr1{, exprn} from tablesrc1{, tablesrcn} where ..

        cette commande me semble un peux compliquer si tu pouvais m'expliquer les options secondaires de cette commande svp
        merci
      2. Salut
        Les accolades { et } ne délimitent pas des "options secondaires" mais seulement des blocs éventuellement répétés:
        col{, coln} représente
        col
        ou
        col, col1
        ou
        matricule, nom, prenom, date_embauche, situation_familiale, date_naissance
        etc
    2. Modérateur
      Salut,

      Il est tout à fait possible, dans un fichier .sql de placer plusieurs insert à la suite, comme tu l'as fait dans ton 2ème exemple.

      Quel est le message d'erreur ? N'est-ce pas juste que tu as oublié 'VALUES' dans le second insert.

      cdlt
      1. si ...
        j'ai mais les deux commandes tel qu'elle sont supposait etre mis
        mais on m'affiche le message d'erreur : caractère non valide
        voila ce que j'ai mis exctement :

        INSERT INTO livre (code_livre,titre,themes,date_edit,nb_pages) 
        VALUES ('60','deseign','base donne',to_date('2001/10/23','YYYY/MM/DD'),'300');
        INSERT INTO livre (code_livre,titre,themes,date_edit,nb_pages) 
        VALUES ('70','programation OO','programation',to_date('2001/10/23','YYYY/MM/DD'),'200');
    3. Modérateur
      Essaye les 2 lignes une par une pour voir laquelle n'est pas bonne.

      Quelle est la description complète de ta table pour la nature des champs

      Quelle est l'erreur oracle ORA-xxxx

      Dans ton .sql le champ date n'est pas vraiment sur 2 lignes, c'est juste tronqué ici ? par ce que
      ('2001/10/23','YYYY
      /MM/DD'),'300');
      ainsi séparé en 2 ne fonctionnerait pas

      1. Salut

        pour completer la soluce à jee pee:

        alter session set nls_date_format='YYYY/MM/DD';
        INSERT INTO livre (code_livre,titre, themes, date_edit, nb_pages)
        VALUES ('60', 'deseign', 'base donne', '2001/10/23', '300');
        INSERT INTO livre (code_livre,titre, themes, date_edit, nb_pages)
        VALUES ('70', 'programation OO', 'programation', '2001/10/23', '200')­;

        et si nb_pages est numbre, enlever les apostrophes qui encadrent 300 & 200.