Here, I am showing that I can use "Recover datafile" while the db is open. Did I get you wrong? Or, did the DOC actually say that?

My conclusion is here:

1. If the log required for recovering the datafile is still online, then you can use both "reover datafile" and "alter database"

2. If the log is now archived, you have to use "recover datafile"

Please challenge me. Thanks!

SQL> shutdown abort;
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area 293855392 bytes
Fixed Size 73888 bytes
Variable Size 136314880 bytes
Database Buffers 157286400 bytes
Redo Buffers 180224 bytes
Database mounted.
Database opened.
SQL> recover datafile '/export/home/u01/oradata/ktvw/users01.dbf';
ORA-00279: change 479108523 generated at 05/07/2002 15:42:09 needed for thread
ORA-00289: suggestion : /export/home/u03/arch/ktvw/arch_1_667.arc
ORA-00280: change 479108523 for thread 1 is in sequence #667

Specify log: {=suggested | filename | AUTO | CANCEL}

Log applied.
Media recovery complete.