Gerade beim Lesen von Oracle musst du stark auf die Felddefinitionen achten!

Feldtyp NUMBER:
Häufig ist dieser nicht genau definiert wie "Number(n, m)" sondern pauschal, so dass ArdGate hier nicht weiß, wie es die Umsetzung machen soll.
Daher ist das Feld dann entsprechend zu casten "cast(Field as number(n, m))".

Feldtyp DATE:
Häufig wird in diesem Typ bei Oracle auch oder nur die Uhrzeit abgelegt, ArdGate kann aber nur das Datum liefern da Java das so macht.
Benötigst du die Uhrzeit zusätzlich, musst du auch hier den Feldtyp in Char casten "cast(Datefield as [var]char(nn))"

Es gibt sicherlich noch mehr "Ungereimtheiten" bei Oracle, die aber letztendlich nicht so schwierig beim Umgehen sind.

Besonders ist noch auf den Typ "n[var]char2" bei Oracle einzugehen.
Die Größe wird bei Oracle leider in Byte definiert, der Inhalt ist aber UTF-8.
Dadurch kann es beim Schreiben (Insert/Update) zu Problemen kommen, insbesonders wenn man in RPG nicht mit "varying" arbeitet und trailing Blanks entfernt!

Ein "nvarchar2(2)" kann zwischen 1 und 2 Zeichen aufnehmen, je nach Zeichencode.
"AA" - "99"
"Ü"
Das "Ü" belegt 2 Byte, das Oraclefeld kann daher nur das "Ü" selber aufnehmen, ein Bank ist dann nicht mehr möglich.

Äquivalent verhält sich das dann auch mit z.B. Adressfeldern, wo beim Schreiben ungewöhliche Fehler ("Feld ist zu klein" gemeldet werden, da der zu schreibende Wert 2-Byte-Sonderzeichen und Leerzeichen am Ende enthält.