web-dev-qa-db-fra.com

Que peut représenter le CODE SQL -104 (erreur)?

J'exécute une requête SQL via jcc pour exécuter un rapport. Lorsque j'ai ouvert le fichier journal des erreurs pour le programme et examiné la requête SQL, tout semble aller bien (il n'y a pas de crochets, de virgules, etc. supplémentaires ou manquants et la syntaxe est bonne) mais lorsque j'exécute, j'obtiens cette erreur:

[Report.execute ()] Erreur SQL DB2: SQLCODE = -104, SQLSTATE = 42601, SQLERRMC = ,; ATE IN (1,2,3,10,1);, DRIVER = 4.12.55

Lorsque j'ai fait des recherches sur le SQLCODE, j'ai découvert que cela signifie qu'il y a un symbole illégal dans la requête. Que puis-je rechercher pour trouver ce symbole illégal?

Telle est la requête

enter image description here

Désolé pour la petite police mais si vous zoomez à 200% ou plus, vous pourrez mieux voir la requête.

Merci beaucoup :)

13
Bernice

Vous avez une virgule (où vous ne devriez pas) à la fin de cette ligne:

AND Tick.STATE IN (1,2,3,10,1),

La ligne suivante a également le même problème.

14
Bohemian

Généralement, ce code d'erreur SQL indique que vous avez inséré des caractères supplémentaires, tels que ',' ou '(' ou ')' ou en quelque sorte. La vérification de la requête complète dans la trace aidera les personnes qui écrivent des requêtes SQL dans un programme Java ou autre, car il m'a fallu environ 2 heures pour comprendre que j'en ai un supplémentaire ') 'dans ma requête.

4
ramakrishnan

J'ai planté cette erreur car l'un de mes paramètres de générateur de requête était nul et la requête ressemblait à ".. OrderType = 'CM' et null".

0
Pekmezli Dürüm

Dans mon cas, le problème était peu différent, je voulais fusionner deux tables, puis copier les données du tableau 2 dans le tableau 1 de la colonne respective.

Mise à jour correcte de la requête Table1 T1 définie T1.DEST_COLMN = (sélectionnez SRC_COLMN dans le tableau2 T2 où T1.ID = T2.ID)

0
user3572104