Re: what is obj$.type#=10?

  • From: "Jonathan Lewis" <jonathan@xxxxxxxxxxxxxxxxxx>
  • To: <oracle-l@xxxxxxxxxxxxx>
  • Date: Wed, 23 Jun 2004 20:04:32 +0100

Your original post about type# = 10 was correct -
I did post something a long time ago about Oracle
keeping obj# rows intact as type# = 10.

I think, at the time, that it was keeping two or three
types, including tables.  At present though it may only
be keeping only synonyms (including private ones for 
objects in your own schema) and the only way that
you can re-use those object numbers is to create a
new synonym of the same name (which can reference
a different object).

In this case, the type# = 10 really is the row for the
object you have dropped, and not a previously
existing "non-existent" object.

I don't have any idea at present why Oracle does this.





Regards

Jonathan Lewis

http://www.jlcomp.demon.co.uk

http://www.jlcomp.demon.co.uk/faq/ind_faq.html
The Co-operative Oracle Users' FAQ

http://www.jlcomp.demon.co.uk/seminar.html
Optimising Oracle Seminar - schedule updated May 1st


----- Original Message ----- 
From: "Jacques Kilchoer" <Jacques.Kilchoer@xxxxxxxxx>
To: <oracle-l@xxxxxxxxxxxxx>
Sent: Wednesday, June 23, 2004 7:40 PM
Subject: RE: what is obj$.type#=10? 


-----Original Message-----
Jonathan Lewis

-- I agree. Specifically, you get lots of these when
-- you create a permanent object that depends on
-- public synonym.  At some point, you may create
-- a local object that "conceals" the public synonym,
-- at which point the thing that depends on the synonym
-- has to become invalid and depend on the local object.
-- To allow this to happen, you NEED a 'non-existent'
-- object of the same name to exist, so that the permanent
-- object can depend on its non-existence, and notice when
-- it ceases to be non-existent.


Once again I learn something from the list. (I wrote a sample script =
below to show what Mr. Lewis is talking about.) I have a question =
though. In an Oracle 9.2 database, I create public synonym X for =
some_table. Then I drop public synonym X. No one has ever used public =
synonym X, there are no dependencies on it, so why does a row remain in =
SYS.OBJ$ for X with type# 10? That row will remain until I restart the =
database.



----------------------------------------------------------------
Please see the official ORACLE-L FAQ: http://www.orafaq.com
----------------------------------------------------------------
To unsubscribe send email to:  oracle-l-request@xxxxxxxxxxxxx
put 'unsubscribe' in the subject line.
--
Archives are at //www.freelists.org/archives/oracle-l/
FAQ is at //www.freelists.org/help/fom-serve/cache/1.html
-----------------------------------------------------------------

Other related posts: