Sys Objects Get Invalidated When Running The Procedure Through Db Link (Doc ID 1397849.1)

Last updated on MAY 07, 2017

Applies to:

Oracle Database - Enterprise Edition - Version 10.2.0.5 to 11.2.0.3 [Release 10.2 to 11.2]
Information in this document applies to any platform.

Symptoms

Executing a remote procedure over a dblink invalidates local application objects (not Oracle objects) which are located under SYS.

If 10046 / level 12 trace is enabled in the local session , this shows that immediately prior to objects being invalidated , the sql statement is run .

select o.obj#, o.stime from obj$ o, dependency$ d where owner#=:1 and type# in (7, 8, 9, 11, 12, 14) and o.obj# = d.d_obj# and d.p_obj# in (select obj# from obj$ where owner#=:2)


It is these objects returned which are being invalidated.

Note : the owner (:2) is the user id of the current local connected user , determined from dba_user.user_id :

select user_id, username from dba_users where username = '<current connected username>';



Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms