I always try to avoid the rename table -> create new table -> do something to move data -> drop old table solutions if possible. There are always considerations of PL/SQL invalidations, recreating grants, locks, etc. that can complicate this.
If the trigger doesn't reference the column involved, I would:
- add the new column (obviously with a different name)
- update the table to set newColVal = oldColVal
- drop the old column
- rename the column to the old name
One minor drawback to this is that the new column will appear at the end of the table's column list when development tools describe the table - this has never bothered me but it does matter to some.
As Daniel E. pointed out, the DBMS_REDEFINITION package is an alternative to this, but in my experience it is time-consuming to get this set up and executing properly. It is worth learning this technique if you ever have to perform on-line changes to systems with absolutely no downtime.