DBA_OBJECTS view in Oracle

The DBA_OBJECTS object is a view. I was trying to look and see what the underlying tables of that view is. Can those base tables be updated manually, and it be reflected in the view?

Can obj$ be updated manually?

1

2 Answers

No. obj$ cannot be updated manually. Only indirectly through execution of DDL statements that create, alter, or drop database objects.

You can see the underlying objects by querying dba_views:

SELECT text FROM dba_views WHERE view_name = 'DBA_OBJECTS' 

You will find that it is quite complex, undocumented and absolutely off limits for direct modification. Messing with dictionary objects can easily corrupt your dictionary and will earn you a dead-end in any SR you open with Oracle. But there's no harm in exploring the view definitions to understand the dictionary better, and in some cases, such as with advanced monitoring tools such as I write, there is benefit to querying base dictionary and fixed x$ objects directly, but never modifying anything.

The only exception to the above rule I have found is that there is a legitimate need for a DBA at times to modify the ptime column in sys.user$ in order to spread out password expirations caused by creating too many users all at the same time (at database creation time, for example). But this is a rare situation and is only justified by the lack of any other means provided by Oracle to do this.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

You Might Also Like