Die einfachere Variante ist eher pur SQL.
Wenn die Struktur (Spaltennamen, Anzahl und Reihenfolge) der Tabellen ja identisch ist, kann nach dem Create ein simpler "insert into newschema.tablename select * from oldschema.tablename" angewendet werden. Das kann genauso gut auch per RUNSQL in CLP/CLLE erfolgen.

Zoned-Variablen müssen Zoned bleiben oder können auch in decimal konvertiert werden, da sie in SQL sonst nicht als Zahl verwendet werden können.
In Java lassen sich Zahlen i.W. nur als BigDecimal oder eben double/float verarbeiten.

Und ja, für RPGLE und SQL ist NVARCHAR praktischer (CCSID 1200 ist da der Default), da sie in ILERPG in UCS2 zur Verfügung stehen und bei der Remoteverarbeitung (SQL/ODBC/JDBC) der Typ String damit dargestellt wird und somit keine Umwandlung UTF8<=>1200 bei der Verarbeitung erfolgen muss.