The following example drops one datafile successfully. Why the dictionary still records it?
===========================
1 select tablespace_name, file_name, bytes/1048576 "MB"
2 from dba_data_files
3* where tablespace_name='USERS3'
SQL> /
TABLESPACE_NAME FILE_NAME MB
-------------------- ------------------------------------------------------- -----------
USERS3 C:\ORACLE\ORADATA\ORCL\USERS03X.DBF 1.00
USERS3 C:\ORACLE\ORADATA\ORCL\USERS03Y.DBF 1.00
SQL> alter database datafile 'C:\ORACLE\ORADATA\ORCL\USERS03Y.DBF' offline drop;
Database altered.
SQL> select tablespace_name, file_name, bytes/1048576 "MB"
2 from dba_data_files
3 where tablespace_name='USERS3';
TABLESPACE_NAME FILE_NAME MB
-------------------- ------------------------------------------------------- -----------
USERS3 C:\ORACLE\ORADATA\ORCL\USERS03X.DBF 1.00
USERS3 C:\ORACLE\ORADATA\ORCL\USERS03Y.DBF 1.00
SQL> select name, status from v$datafile where name like '%USER%3%';
NAME STATUS
---------------------------------------- -------
C:\ORACLE\ORADATA\ORCL\USERS03X.DBF ONLINE
C:\ORACLE\ORADATA\ORCL\USERS03Y.DBF RECOVER
