Nun ja, auch das ist nur bedingt richtig.
Solange die interne Datei keine gepackten Felder enthält ist das releativ einfach:

select substr(satzfeld, 1, 10) as feld1, dec(substr(satzfeld, 11, 5), 5, 0) as numfeld ...
from myfile

Sind Zoned-Felder mit Vorzeichen darin, so kann man mittels case das Vorzeichen ja abfragen:

dec(substr(satzfeld, pos, len-1) concat substr(hex(substr(satzfeld, pos+len-1, 1)), 2, 1), len, 0)
*
case substr(hex(substr(satzfeld, pos+len-1)), 1, 1)
when 'D' then -1
else 1 end)

Für gepackte Felder:
dec(substr(hex(substr(satzfed, pos, len), 1, len*2-1))
*
case substr(hex(substr(satzfeld, pos+len-1)), 2, 1)
when 'D' then -1
else 1 end)

Benötigst du z.B. 2 Nachkomma, so musst du nur
dec(....) / 100
anhängen.

usw. usw.