Hallo,

ich kann mein Sql mit STRSQL absetzen ohne Fehlermeldung:
Code:

SELECT 
TBL1CDE AS CDE,  // 16 A 
TBL1FO# AS FO#,  // 5, 0
TBL1TNR AS TNR,  // 16 A
TBL1MEN AS MEN,  // 5, 2
case when ifnull((select ART2BEZ from ART2P 
                   where TBL1IMP = PETIMP 
                     AND TBL1TNR = PETTNR ), TBL1BEZ) = ' ' 
    then (select ARTBZ1 FROM ART1P where TBL1TNR = ARTNR) 
    else ifnull((select ARTBZ2 from ART2P 
                  where TBL1IMP = PETIMP 
                  AND TBL1TNR = PETTNR) , TBL1BEZ) 
end as BEZ       // 40 A
FROM TABLE1 A INNER JOIN TABLE2 
  ON TBL1CDE = TBL2ACD) 

select CDE, FO#, TNR, BEZ, MEN 
from x 
ORDER BY CDE, FO#
Wenn ich es im RPG-Programm umsetze bekomme ich die Fehlermeldung:
Code:
Sqlcode= -420 Sqlstate= 22018; Zeichen in CAST-Argument ungültig.
ich fetche das in eine Datenstruktur:
Code:
D  SqlRs_Sfl1...                                      
D                 DS                  INZ Qualified   
D CDE                                 LIKE(TBL1CDE)    
D FO#                                 LIKE(TBL1FO#)    
D TNR                                 LIKE(TBL1TNR)    
D MEN                                 LIKE(TBL1MEN)    
D BEZ                                 LIKE(ARTBZ1)
Ich habe in der Datenbank auch nachgesehen ob korrupte Daten vorhanden sind aber es schaut alles ok aus.
Was kann ich noch probieren?
Alles mit IFNULL versehen habe ich schon ausprobiert.

Wenn ich eine Tempfile aus der Abfrage erstelle (create table qtemp/test1 as( ..) with data)
sehe ich das die Definitionen auch korrekt angegeben wurden:
Code:
Feld               Datei              Art                   Länge  Skala  
CDE                TEST1              CHARACTER                16         
FO#                TEST1              DECIMAL                   5         
TNR                TEST1              CHARACTER                16         
BEZ                TEST1              CHARACTER                40         
MEN                TEST1              DECIMAL                   5     2
Lg