In our application, we have two sets of tables: One set of working tables (with the data that is currently analyzed) and another set of archive tables (with all data that has even been analyzed, same table-name but with a `a_`prefix). The structure of the tables is the same, except that the archive tables have an extra column `run_id` to distinguish between different sets of data.

Currently, we have a SQL script that copies the contents over with statements similar to this:

```
insert into a_deals (run_id, deal_id, <more columns>) 
select maxrun, deal_id, <more columns> 
from deals,
  (select    max(run_id) maxrun from batch_runs);   

```

This works fine, but whenever we add a new column to the table, we also have to mpdify the script. Is there a better way to do this that is stable when we have new columns? (Of course the structures have to match, but we'd like to be able not to have to change the script as well.)

FWIW, we're using Oracle as our RDBMS.