Insertion donner sous oracle

Résolu
haroun- Messages postés 708 Date d'inscription   Statut Membre Dernière intervention   -  
 fiu -
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

5 réponses

haroun- Messages postés 708 Date d'inscription   Statut Membre Dernière intervention   3
 
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
0
fiu
 
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
0
haroun- Messages postés 708 Date d'inscription   Statut Membre Dernière intervention   3
 
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
0
fiu
 
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
0
jee pee Messages postés 41501 Date d'inscription   Statut Modérateur Dernière intervention   9 711
 
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
0
haroun- Messages postés 708 Date d'inscription   Statut Membre Dernière intervention   3
 
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');
0
jee pee Messages postés 41501 Date d'inscription   Statut Modérateur Dernière intervention   9 711
 
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

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fiu
 
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.
0