We are having issues generating DDL in the newer SQL Developer versions, but not version 18.
NOTE: TESTUSER, ODI_DEVELOPERS and ODI are substituted names for the actual names.
When we connect with the newer versions of SQL Developer and drilldown via our TESTUSER | Other Users | ODI | Views to look at a view in our ODI user/schema, the columns, data, details, etc. are all visible. But, the DDL is not rendered on the SQL tab.
Our TESTUSER account is a member of our ODI_DEVELOPERS role, which has typical permissions to these views (e.g. SELECT) and seem to work in versions 20 and 21 the way they did in version 18, except with respect to DDL generation.

Based on advice in another thread, we granted EXECTUTE on DBMS_METADATA to our developer's role:
SQL> grant execute on dbms_metadata to ODI_DEVELOPERS;
Grant succeeded.
Our test account, still does not seem to be able to generate DDL in version 20 or 21 via the SQL tab, as shown here...
Equally, it does not work using the dbms_metadata.get_ddl in these versions.
NOTE: This statement generates the exact same reply when we use our actual account names as it does when we use our substitutions (e.g. ODI), as shown here.
Both techniques work in version 18.
Any thoughts?