The way I refresh test & dev DBs from production is to "clone" the production. I've wriiten shell scripts (Unix) to ease the task (since I do it on a regular basis), but the process is fairly straight forward, and a lot faster than doing an export/import (about 1/2 hour versus 4 hours per DB). However, this does a complete refresh, not incremental.

Someone (somewhere) probably has already written this up, but the basic procedure is:
1. For the destination DB, execute an "alter database backup controlfile to trace", then make a couple of minor edits to that trace file.
2. Delete *all* files (data, log, and control) for the *destination* DB.
3. Shut down the source DB, then *copy* all source DB data and log files (*not* the control files) to the appropriate locations for the destination DB.
4. In server manager "Startup nomount" the destination DB and execute the modified trace file.
5. Start up the source DB
6. You're done with the Oracle part. You may need to do application specific stuff with the data (such as deleting or updating flag records, etc.)

Tim