We have 2 databases one internal OLTP database and another external
which our clients access.

We want to have a snapshot of the internal database on our external
database so that our clients can have read only access to the external

I came up with the following solutions

Export the whole schema and import it into the external database. But
this has turned out to be a pain as I will have to drop the schema and
recreate it and then import the tables.

Implement views on the external database for each and every table in
the internal database, but this will increase the load on our internal
database and more important since our internal database is licensed on
Named user plus, every client of ours that connect to our database
will be a Named User. (Our external database is licensed on number of
processors but since views will access the internal database through
database links oracle treats these as Users)

Is there any other better solution to do this.

Maybe Replication....

Please suggest.