Un INSERT VALUES
instruction insère toujours exactement 1 ligne. Si vous souhaitez insérer plusieurs lignes avec des valeurs codées en dur, l'approche la plus courante serait simplement d'exécuter deux INSERT
distincts déclarations.
insert into t1 values(131309,'HP','20-FEB-04',2000000,1235);
insert into t1 values(131310,'HT','20-APR-14',120020,1234);
Si vous le vouliez vraiment, vous pourriez sélectionner vos valeurs codées en dur à partir de dual
puis faites un INSERT SELECT
insert into t1
select 131309, 'HP', '20-FEB-04',2000000,1235 from dual
union all
select 131310,'HT','20-APR-14',120020,1234 from dual
Ou vous pouvez faire un INSERT ALL
insert all
into t1 values(131309,'HP','20-FEB-04',2000000,1235)
into t1 values(131310,'HT','20-APR-14',120020,1234)
select * from dual
Personnellement, je n'utiliserais que deux déclarations.
Bien que cela ne soit pas lié à votre question, quelques commentaires
- Toujours, répertoriez toujours les colonnes dans votre
insert
déclaration. Vous rendrez votre SQL beaucoup plus robuste de sorte que si vous ajoutez de nouvelles colonnes à l'avenir qui autorisentNULL
valeurs vos instructions fonctionneront toujours. Et vous éviterez de nombreux bugs lorsque la liste des colonnes est là plutôt que d'espérer que quelqu'un se souvienne de l'ordre des colonnes dans le tableau. - Si vous insérez une valeur dans une
date
colonne, utilisez une date et non un littéral de chaîne qui représente une date. S'appuyer sur la conversion implicite des types de données est une source de nombreux bogues. Utilisez unto_date
explicite ou utilisez des littéraux de date ANSI. Et utilisez des années à 4 chiffres.