Bonjour à tous,  
 
J'ai un problème assez étrange en SQLJ (Un truc qui génère du JDBC), avec une base DB2. J'ai besoin de faire ça :
 
Code :
 - and T3.CTSCO = (case T2.CTSGRI
 -     	when '1' then '20'
 -     	when '2' then '21'
 -   	end)
 
  | 
 
Si je l'écris tel quel, cela fonctionne.
 
Maintenant, j'aurais besoin que les 4 chaines de caractères soient des paramètres côté Java :  
Code :
 - and T3.CTSCO = (case T2.CTSGRI
 -     	when :CONST1 then :CONST1BIS
 -     	when :CONST2 then :CONST2BIS
 -   	end)
 
  | 
 
Et là ça plante, j'ai une erreur SQL -418 (A STATEMENT STRING TO BE PREPARED CONTAINS AN INVALID USE OF PARAMETER MARKERS
-419).
 
Là où ça devient TRÈS étrange, c'est que ces deux écritures FONCTIONNENT toutes les deux :  
 
Code :
 - and T3.CTSCO = (case T2.CTSGRI
 -     	when :CONST1 then '20'
 -     	when :CONST2 then :CONST2BIS
 -   	end)
 
  | 
Code :
 - and T3.CTSCO = (case T2.CTSGRI
 -     	when :CONST1 then :CONST1BIS
 -     	when :CONST2 then '21'
 -   	end)
 
  | 
 
Et là je ne comprends plus rien : Je peux paramétrer un then ou le second, mais pas les deux en même temps   
  
  
 
Merci d'avance si vous avez des idées…
 
Message édité par zerist le 29-05-2017 à 15:43:32
 ---------------
			
https://www.flickr.com/photos/182924845@N04/