这个问题是来自Oracle的一个群的一个人的问题。
他问:
在Oracle中,如果一个用户下有对象,那么“drop user”的时候不加cascade会如何,Oracle是否会把该用户下的数据移动到默认位置吗,还是采用其他的逻辑?

对于这个问题,我做出了如下的测试:
Log:
SQL> select owner,table_name,tablespace_name,status from dba_tables where table_name= 'ADAMHUAN_TABLE';

OWNER
--------------------------------------------------------------------------------
TABLE_NAME
--------------------------------------------------------------------------------
TABLESPACE_NAME
--------------------------------------------------------------------------------
STATUS
------------------------
ADAMHUAN
ADAMHUAN_TABLE
USERS
VALID


SQL> select * from adamhuan.adamhuan_table;

NAME
------------------------------------------------------------
大叔
萝莉
御姐

SQL>
SQL> drop user adamhuan;
drop user adamhuan
*
第 1 行出现错误:
ORA-01922: 必须指定 CASCADE 以删除 'ADAMHUAN'


SQL> create user angel identified by oracle account unlock;

用户已创建。

SQL> grant create session,resource to angel;

授权成功。

SQL> drop user angel;

用户已删除。

SQL>


结论:
如果用户下有数据,那么“drop user”的时候必须加“cascade”关键字。
——
To be continue.