How to list Oracle objects that have not been used in the last month?
There is no reliable way to do this. Even with auditing enabled, indirect object access is not recorded in some cases. For example if you have an ON DELETE CASCADE foreign key defined, and you delete rows from the parent table, the deletion of rows from the child table does not appear in the audit trail.

As far as I know, the only object type that has support for this, is the index. You can enable index monitoring by:

alter index owner.index_name monitoring usage;


Once you have enabled monitoring for an index, later you can check if the index was used in the view V$OBJECT_USAGE (when logged in as the owner of the index).

Starting with 12c, you need not to log in as the owner to query this, the new DBA_OBJECT_USAGE view can be used for this.

When you do not want the index to be monitored anymore, disable monitoring by:

alter index owner.index_name nomonitoring usage;