Die Satzlänge einer Datei spielt doch eigentlich gar keine Rolle, da sie i.W. eine Pufferlänge und nicht die tatsächliche Satzlänge wiedergibt.
Mit SQL ist das sowieso egal, da automatische Konvertierungen zwischen Hostvariablen stattfinden.
In RPG stellt sich das auch noch etwas anders dar, wenn ich nämlich eine Dezimal-Variable in einer DSPF/PRTF verwende wird die generell gezont definiert!
Nur wenn ich die PF/LF in einer DS (extern) angebe, werden gepackte Dezimalfelder auch als gepackt definiert.

Insbesonders Datumsfelder hängen von dem in der H-Bestimmung (Compileroption) angegebenen Datumsformat ab und sind eben nicht immer 10-Stellig.

Die physische Satzlänge gibt es eigentlich auch nicht, da insbesonder LOB's und z.T. VARLEN-Felder gar nicht im eigentlichen Satz gespeichert werden sondern über Zeiger verwaltet werden.

Man bedenke auch die Speicherungsform von DATE/TIME/TIMESTAMP-Felder.
Timestamps sind im Puffer z.B. 26 Stellen, belegen tatsächlich aber nur 8 Bytes (64-Bit).

Wenn ich mir dann noch die eigentlich Frage ansehe "Gesamtlänge einer Datei" so ist das für mich ganz einfach die Objektgröße und nicht die Satzlänge.

Die Objektgröße erfahre ich mit RTVOBJD ... SIZE(&MYSIZE), bei Teildaten RTVMBRD kann ich die Information noch trennen mit DTASPCSIZ bzw. ACCPTHSIZ,