Recently when trying to drop a user, I got an error that seemed unrelated to the act of dropping the user.
SQL> drop user demo cascade; drop user demo cascade * ERROR at line 1: ORA-29972: user does not have privilege to change/ create registration
It turns out, that this user account was being used via an ODP.NET application, which was using the new 11g feature – Change Notification. This is a system privilege, and (for an unknown reason) you need to revoke this privilege before you can drop the user.
SQL> revoke CHANGE NOTIFICATION from demo; Revoke succeeded. SQL> drop user demo cascade; User dropped.