Hi,

I am curious to know what does Oracle do internally when we issue for ex. alter procedure xyz compile;

Will it just check for the syntax, depending objects availability, and required privileges?

What happens if one of the depending objects (table) is locked by other session? It compile with errors or waits till the lock released or it won't care about the locked objects?

I haven't find any useful information in google as well as in Metalink so posting here for experts comments.

Thanks,