Hallo,

Wenn Du mit SQL arbeitest, solltest Du sowieso nur die Felder verwenden, die Du tatsächlich brauchst. Damit könnten sich schon die unbrauchbaren Datentypen erledigt haben.

Was die langen Feldnamen angeht, so musst Du lediglich für die Ausgabe kurze, maximal 6 stellige Host-Variablen definieren. Diese Host-Variablen müssen auch dann in den die Datentypen, die RPGIII verarbeiten kann definiert sein. Felder mit variabler Länge werden korrekt in Host-Variablen mit fixer Länge übertragen, Integer-Felder werden korrekt in gepackt oder gezont numerische Felder übernommen. Bei Fließkomma, könnte es bei der Übernahme evtl. zu Rundungsdifferenzen kommen, sofern nicht genügend Nachkommastellen definiert wurden.

Bei Datum und Zeit ist es schon schwieriger. Hier kommt es darauf an, wie Du die Ausgabe-Felder benötigst, d.h. alpha (mit oder ohne Tennzeichen) oder numerisch. Mit SQL müssen die Felder in das gewünschte Format gecastet werden:

Beispiel:
1. Datum im Format 'JJJJ-MM-TT', Zeit im Format 'HH.MM.SS', Zeitmarke im Format 'JJJJ-MM-TT-HH.MM.SS.MSMSMS:
Code:
Select Char(MyDate, ISO), Char(MyTime, ISO),
       Char(MyTimestamp) ...
2. Datum im Format 'JJJJMMTT', Zeit im Format HHMMSS, Zeitmarke im Format JJJJMMTTHHMMSSMSMSMS, Zeitmarke im Format JJJJMMTTHHMMSS:
Code:
select Replace(char(MyDate, ISO), '-', ''),                    
       Replace(Char(MyTime, ISO), '.', ''),                    
       Replace(Replace(Char(MyTimestamp), '-', ''), '.', ''),  
       Left(Replace(Replace(Char(MyTimestamp), '-', '') ...
3. Numerisches Datum im Format JJJJMMTT, Zeit im Format HHMMSS, Zeitmarke im Format JJJJMMTTHHMMSS
Code:
select Cast(Replace(char(current_Date, ISO), '-', '') as Dec(8, 0)), 
       Cast(Replace(Char(Current_Time, ISO), '.', '') as Dec(6, 0)), 
       Cast(Left(Replace(Replace(Char(Current_Timestamp), '-', ''),  
                   '.', ''), 14) as Dec(14, 0))
Birgitta