Requête Firebird qui passe pas

Requête Firebird qui passe pas - SQL/NoSQL - Programmation

Marsh Posté le 06-10-2011 à 17:22:11    

Bonjour,  
 
J'ai une table TOTO avec, entre autre, 2 champs de type integer non null et la requête suivante qui passe pas :
UPDATE TOTO SET IDTiti = 23991058 WHERE IDTutu = 317606058
 
J'ai comme erreur :  
Engine Code    : 335544321
Engine Message :
arithmetic exception, numeric overflow, or string truncation
 
Pourtant, mes 2 nb semblent être dans la bonne page de valeur :??:
 
J'ai pas trouvé grand chose sur le web... Des idées?
 
Merci :jap:


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 06-10-2011 à 17:22:11   

Reply

Marsh Posté le 07-10-2011 à 11:57:36    

C'est peut-être effectivement à cause d'un nombre trop grand.
 
Ou bien, c'est peut-être parce qu'il manque un espace quelque part, par exemple si la requête est en fait :
UPDATE TOTO SET IDTiti = 23991058WHERE IDTutu = 317606058
 
Ou bien s'il manque une fin de chaine, ou une autre erreur de syntaxe.
 
Il faut débugguer. Cela se fait en enlevant des choses jusqu'à ce que ça marche, puis en ajoutant des choses pour voir quelle est précisément la chose qui ne va pas. C'est le boulot habituel de l'informaticien.

Reply

Marsh Posté le 07-10-2011 à 14:19:31    

Ben, le plsu bizarre, c'est que cette requête est dans une boucle. Toutes les autres passent sauf celle-ci, donc je me dit que ça peut venir que des 2 ID. Sauf que si je fais un SELECT * FROM TOTO WHERE IDTutu = 317606058 ou SELECT * FROM TITI WHERE IDTiti = 23991058
 
ça marche, il me trouve la valeur (IDTiti est une clé étrangère dans TOTO et provient de la table TITI) à chaque fois :/
 
J'ai regardé du côté d'éventuels triggers qui pourraient mal réagir à la requête, mais pour l'instant, j'ai rien trouvé de probant...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 07-10-2011 à 17:03:09    

Maintenant je me rappelle qu'un collègue avait eu ce genre de message quand il manquait une apostrophe ou un guillemet quelque part avant la ligne de l'erreur supposée. Mais ce n'est peut-être pas ça.

Reply

Marsh Posté le 07-10-2011 à 17:23:21    

Celle-là, je la connais effectivement mais c'est pas ça a priori, j'ai pas de chaînes, que des entiers dans ma requête. Si tu mets  champ ="Valeur" au lieu de champ ='valeur', Firebird râle.  
 
Rien à voir, mais pareil, si tu mets un having sans group by avant et si dans le group by, tu mets pas tous les champs du select, il râle aussi :/ Vraiment pointilleux ce sgbd!


Message édité par rufo le 07-10-2011 à 17:23:49

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed