Bonjour,
je voudrais faire une insertion multiple sous Oracle, est-ce possible ?
j'ai testé la commande spécifiée danc le tutoriel http://sql.developpez.com/sqlaz/dml/#L1.2 mais sans succès.
Quelqu'un à déjà fait ça ?
PoichOU
Bonjour,
je voudrais faire une insertion multiple sous Oracle, est-ce possible ?
j'ai testé la commande spécifiée danc le tutoriel http://sql.developpez.com/sqlaz/dml/#L1.2 mais sans succès.
Quelqu'un à déjà fait ça ?
PoichOU
Non pas sous oracle.
tu peux faire un
Code : Sélectionner tout - Visualiser dans une fenêtre à part INSERT INTO TABLE(col1, col2) SELECT c1, c2 from ....
les données que je veux insérer ne sont pas déjà stockée en base, je ne peux donc pas faire
mon but est d'insérer des données provenant d'un fichier excel dans une table. J'ai donc beaucoup de ligne, n'y a t-il pas un moyen d'éviter de faire une requête insert par ligne ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part INSERT INTO TABLE(col1, col2) SELECT c1, c2 FROM ...
Salut,
Il y a le sqlloader ou utl_file
http://jaouad.developpez.com/sqlldr/
Publications: http://schelabi.developpez.com/
sûr que sql load est une bonne approche. Techniquement, tu pourrais essayer :
quel est ton problème avec un insert par ligne ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 create table t(x number,y number); insert all into t values (1,1) into t values (2,2) into t values (3,3) select 'x' from dual;
mon problème est que j'ai 100 000 lignes !
j'ai testé ta méthode, elle marche !
J'ai donc construit une super requête avec toutes mes lignes à insérer, le seul problème c'est qu'il me fait un message d'erreur :
Y a t -il une parade ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part ORA-24335: nombre de colonnes acceptées limité à 1000
Bon j'ai rencontré le même problème et ai trouvé la solution, c'est pourquoi je me permet de remonter ce vieux sujet.
Vu qu'il apparait en bonne place dans Google, ça pourra sans doute servir.
J'utilisais la méthode de laurentschneider dans une transaction lancée par un programme CSharp :
et obtenait l'erreur ORA-24335 quand j'avais trop de données. En fait cette méthode d'insertion est à réserver quand on veut insérer dans des tables multiples.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 create table t(x number,y number); insert all into t values (1,1) into t values (2,2) into t values (3,3) select 'x' from dual;
Quand on veut insérer dans une seule table il faut utiliser :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 INSERT INTO table (column1, column2) SELECT value1, value2 FROM DUAL UNION ALL SELECT value1, value2 FROM DUAL UNION ALL ...etc... SELECT value1, value2 FROM DUAL ;
Partager