Oracle does have SUBSTR and REPLACE functions. You could probably do this with a single UPDATE statement and a sub-SELECT.
Redo logging will still probably kill the performance. If need be you could always take the CREATE as SELECT, DROP, RENAME approach with little or no logging to speed things up.
Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.
I agree with Jelle. Doing it with a single SQL statement is much much faster than your original approach. There are many factors that influence the performance, but I would not be surprised if the single SQL statement was five to ten times faster than one-by-one JDBC approach.
Even better than the subselect might be an updatable join (called sometimes key-preserved join), see this discussion.
The CREATE AS SELECT approach is also promising, but might be more complicated from the administrative point of view, as explained here.
Edit: if you want both INSERT and UPDATE operations in one go, look up the MERGE statement in Oracle documentation for your version.