|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : juillet 2003 Messages : 6 ![]() |
Bonjour,
Je voudrais faire des "insert into" en blocs, c'est-à-dire dans interactive SQL je voudrais charger un fichier qui contient toute une liste de "insert into". Le problème est que quand je fais ceci, et qu'il y a environ plus de 80-90 lignes, j'obtiens ce message d'erreur : Dynamic SQL Error SQL error code = -104 Token unknown - line 2, char -1 INSERT Si je fais ensuite un "commit" malgré le message d'erreur, seulement 87 lignes sont enregistrées dans la base. Si par contre je charge un fichier contenant environ 80 lignes, je n'ai plus de message d'erreur et toutes les lignes sont enregistrées. J'aurais donc voulu savoir si il y a une limite dans le nombre d'insertions de données réalisées en une fois. |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Non pas de limite, j'ai des scripts bien plus longs qui fonctionnent parfaitement sous ISQL...
Vérifie bien la ligne qui est en erreur... A mon avis il y a un ; qui traine dans tes données... si c'est le cas utilise set term |
|
|
00
|
|
|
#3 | |||
|
Invité de passage
![]() Inscription : juillet 2003 Messages : 6 ![]() |
Voici les 3 premières lignes de mon fichier:
Code :
Citation:
Sinon par rapport à ce que tu m'as dit, je ne trouve pas de ";" mal placé, et si je met des "set term" cela ne change rien. |
|||
|
|
00
|
|
|
#4 |
|
Membre habitué
![]() Développeur informatique Inscription : octobre 2002 Messages : 273 ![]() |
envoi plutot les dernières lignes
|
|
|
00
|
|
|
#5 | ||||
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Set term ne s'emploi pas seul... j'espere que tu l'as bien utilisé... on doit lui passer un paramètre : le nouveau code de terminaison (suivi du code de terminaison actuel pour valider la commande set term)..
ex : Code :
Pour les valeurs de type chaine il faut utiliser la simple cote : ' Code :
|
||||
|
|
00
|
|
|
#6 | ||
|
Invité de passage
![]() Inscription : juillet 2003 Messages : 6 ![]() |
Les dernières lignes sont :
Code :
|
||
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : juillet 2003 Messages : 6 ![]() |
quand je met les "SET TERM" comme tu me l'as précisé, il n'y a plus de message d'erreur. Seulement, maintenant le sablier SQL reste indéfiniment. Est-ce-que c'est normal parce que c'est long ou au contraire est-ce anormal.
|
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : juillet 2003 Messages : 6 ![]() |
J'oubliais de préciser que le sablier SQL reste à l'écran, aussi bien quand j'utilise les données entrées entre " " que lorsque je les rentre entre ' '
|
|
|
00
|
|
|
#9 | |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Citation:
Arrff... je comprend que tu ne sais pas ce que fait Set term... En fait c'est utilisé pour préciser à Interbase quel est le caractère de terminaison des ordres SQL... Par defaut c'est le ; donc en faisant set term ^ ; celà devient le caractère ^. ce qui est utile quand tu crées des procédures stockées qui contiennent des ; à chaque fin d'instruction.... mais peut etre utilie également si tu fais un script d'insert qui contient des chaines de caractères contenant des ; Daons si tu fais SET TERM ^ ; il va falloir que tu remplaces tout les ; de fin (et uniquement les ; de fin d'instruction SQL) par un ^ dans ton script... Mais c'est innutile si tu penses qu'il n'y a pas de ; dans tes chaines de caractères... Et donc oui c'est normal que le sablier reste actif, il attend que tu lui dise que l'instruction est terminée par un ^ |
|
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : juillet 2003 Messages : 6 ![]() |
Merci beaucoup pour ton aide.
En effet, il y avait un « ; » dans une données, mais comme l’erreur indiquée la ligne 2, je me suis focalisée dessus, alors que le problème était plus loin. Effectivement, je n’avais pas compris ce que voulais dire « SET TERM », et grâce à tes explications c’est beaucoup plus clair maintenant et ça fonctionne. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com