테이블스페이스에 할당되어있는 datafile 제거 시 가능한 경우와 불가능한 경우 테스트입니다
    Oracle Datafile drop 가능
    - 데이터가 비어 있어야 합니다.

    Oracle Datafile drop 불가능
    - 테이블스페이스의 첫 번째 또는 유일한 데이터 파일
    - SYSTEM 테이블스페이스의 데이터 파일은 삭제할 수 없습니다

      USERS 테이블스페이스 datafile 제거

      
      -- 데이터파일 조회
      > SELECT 
      file_id, file_name, bytes/1024/1024 AS MB
      FROM dba_data_files 
      WHERE tablespace_name = 'USERS'
      ORDER BY file_name
      
      FILE_ID|FILE_NAME                   |MB|
      -------+----------------------------+--+
            7|/data01/ora19ent/users01.dbf|10|
            5|/data01/ora19ent/users02.dbf|10|
            2|/data01/ora19ent/users03.dbf|10|
      
      3 row(s) fetched.
      
      -- 데이터 파일에 세그먼트 존재하는 경우 drop 에러 발생
      > ALTER TABLESPACE users DROP DATAFILE '/data01/ora19ent/users02.dbf' 
      
      SQL Error [3262] [99999]: ORA-03262: 파일이 비어 있지 않습니다.
      
      
      -- 데이터파일 사용중인 세그먼트 조회
      > select file_id, owner
      , segment_name, partition_name, segment_type, round((block_id*8192+blocks*8192)/1024/1024) loc_mb, round(bytes/1024/1024,2) size_mb
      from dba_extents
      where 1=1
      AND tablespace_name = 'USERS'
      order by file_id
      
      
      FILE_ID|OWNER  |SEGMENT_NAME                 |PARTITION_NAME|SEGMENT_TYPE|LOC_MB|SIZE_MB|
      -------+-------+-----------------------------+--------------+------------+------+-------+
            5|SK     |TAB1                         |              |TABLE       |     7|      1|
            5|SK     |TAB1                         |              |TABLE       |     1|   0.06|
            5|SK     |TAB1                         |              |TABLE       |     6|      1|
            5|SK     |TAB1                         |              |TABLE       |     1|   0.06|
            5|SK     |TAB1                         |              |TABLE       |     5|      1|
            5|SK     |TAB1                         |              |TABLE       |     1|   0.06|
            5|SK     |TAB1                         |              |TABLE       |     4|      1|
            5|SK     |TAB1                         |              |TABLE       |     1|   0.06|
            5|SK     |TAB1                         |              |TABLE       |     3|      1|
            5|SK     |TAB1                         |              |TABLE       |     1|   0.06|
            5|SK     |TAB1                         |              |TABLE       |     2|   0.06|
            5|SK     |TAB1                         |              |TABLE       |     2|   0.06|
            5|SK     |TAB1                         |              |TABLE       |     2|   0.06|
            5|SK     |TAB1                         |              |TABLE       |     2|   0.06|
            5|SK     |TAB1                         |              |TABLE       |     1|   0.06|
            5|SK     |TAB1                         |              |TABLE       |     1|   0.06|
            7|SK     |TAB1                         |              |TABLE       |     3|   0.06|
            7|SK     |TAB1                         |              |TABLE       |     3|   0.06|
            7|SK     |TAB1                         |              |TABLE       |     3|   0.06|
            7|SK     |TAB1                         |              |TABLE       |     3|   0.06|
            7|SK     |TAB1                         |              |TABLE       |     3|   0.06|
            7|SK     |TAB1                         |              |TABLE       |     4|      1|
            7|SK     |TAB1                         |              |TABLE       |     5|      1|
            7|SK     |TAB1                         |              |TABLE       |     6|      1|
            7|SK     |TAB1                         |              |TABLE       |     7|      1|
            7|SK     |TAB1                         |              |TABLE       |     8|      1|
            7|SK     |TAB1                         |              |TABLE       |     9|      1|
      
      54 row(s) fetched.
      
      
      -- 데이터 파일이 비어있는경우 drop 가능
      > ALTER TABLESPACE users DROP DATAFILE '/data01/ora19ent/users03.dbf' 
      
      0 row(s) modified.
      

      SYSTEM 테이블스페이스 datafile 제거

      
      > SELECT 
      file_id, file_name, bytes/1024/1024 mb
      FROM dba_data_files 
      WHERE tablespace_name = 'USERS'
      ORDER BY file_name
      
      
      FILE_ID|FILE_NAME                   |MB|
      -------+----------------------------+--+
            7|/data01/ora19ent/users01.dbf|10|
            5|/data01/ora19ent/users02.dbf|10|
      
      2 row(s) fetched.
      
      
      -- system 테이블스페이스 datafile 조회
      > SELECT 
      file_id, file_name, bytes/1024/1024 AS MB
      FROM dba_data_files 
      WHERE tablespace_name = 'SYSTEM'
      ORDER BY file_name
      
      
      FILE_ID|FILE_NAME                           |MB  |
      -------+------------------------------------+----+
            1|/ora19ent/oradata/ENT19/system01.dbf|1029|
            2|/ora19ent/oradata/ENT19/system02.dbf|  10|
      
      2 row(s) fetched.
      
      -- 2번 datafile 사용 세그먼트 조회(없음)
      select file_id, owner
      , segment_name, partition_name, segment_type, round((block_id*8192+blocks*8192)/1024/1024) loc_mb, round(bytes/1024/1024,2) size_mb
      from dba_extents
      where 1=1
      AND tablespace_name = 'SYSTEM'
      AND FILE_id = 2
      order by file_id
      
      
      FILE_ID|OWNER|SEGMENT_NAME|PARTITION_NAME|SEGMENT_TYPE|LOC_MB|SIZE_MB|
      -------+-----+------------+--------------+------------+------+-------+
      
      0 row(s) fetched.
      
      > ALTER TABLESPACE system DROP DATAFILE '/ora19ent/oradata/ENT19/system02.dbf' 
      
      SQL Error [1541] [72000]: ORA-01541: SYSTEM 테이블스페이스는 오프라인될 수 없습니다. 필요하면 종료하십시오.