Das mit der Prüfung beim Lesen von DDS-Dateien halte ich auch für ein Gerücht!

Sowohl beim Schreiben als auch beim Lesen erfolgt KEINE Prüfung durch die Datenbank.
Die Leseprüfung erfolgt durch den internen RPG-Overhead, der aus dem Dateipuffer in die Variablen überträgt und dabei eben Dezimalfeldfehler auslöst.
Diese Prüfung kann ich aber mittels
CRTRPGPGM IGNDECERR(*YES)
ausschalten. Fehlerhafte Dezimaldaten werden dann zu 0 übersetzt.
Im ILERPG gibts sogar eine H-Bestimmung dazu.

Bei COBOL sieht das da nämlich ganz anders aus. COBOL arbeitet direkt mit den Dateipuffern und bekommt daher auch beim Lesen keine Fehler.
Erst beim Ansprechen der Variableninhalte kommt es zum Dezimalfehler.
Eine Compileroption gibts dafür nicht, jedoch kann ich per
IF FELD IS NUMERIC
...
END-IF
Das Problem umgehen.

Da SQL eben noch eine Schicht zwischen der internen PF und dem Programm ist, gibts bem Select ebenso Dezimalfehler bei ungültigen Daten, die ich aber eben nicht ausschalten kann, ebenso prüft SQL VOR der Ausgabe in die PF eben die richtige Typisierung.