Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Non-existing objects? (sys.obj$.type# = 10)

389 views
Skip to first unread message

tash...@my-dejanews.com

unread,
May 10, 1999, 3:00:00 AM5/10/99
to
Hello,

Does anybody know what object with type 10 means in Oracle?

It is a long story to tell why I am asking about it.
But, in short, we are running Oracle Parallel Server 8.0.5.1.1 on
OSF1 v4.0 and I think that Oracle data dictionary is corrupted.
(sometimes server dumps core with code ORA-0600 -- internal error).

I looked at the source of sys.all_objects view and noticed that
objects with type 10 is just skipped in output of that view:

...

and (o.type# not in (1 /* INDEX - handled below */,
10 /* NON-EXISTENT */)
...

So, there is something in the data dictionary and server don't want
to show it through "official" view.

Anybody knows what that type 10 mean?

Thank you,
Tim Ashepkov


--== Sent via Deja.com http://www.deja.com/ ==--
---Share what you know. Learn what you don't.---

Jonathan Lewis

unread,
May 11, 1999, 3:00:00 AM5/11/99
to
'Non-existent' objects exist to handle
'negative dependency' tracking.

Say you have a view

create or replace view v1 as
select * from t1;

but T1 is actually a public synonym to a table in
someone else's schema. The validity of this
view is dependent on the fact that there is
no object named T1 in your schema; so
Oracle creates a 'non-existent' object in
your schema that the view can depend on.

Then, when you create an object called T1 in
your schema, this causes the elimination of
the 'non-existent' object, which automatically
causes the invalidation and recompilation of
the view to use your table.

--

Jonathan Lewis
Yet another Oracle-related web site: www.jlcomp.demon.co.uk

tash...@my-dejanews.com wrote in message <7h7m62$n3o$1...@nnrp1.deja.com>...

Ross Mohan

unread,
May 11, 1999, 3:00:00 AM5/11/99
to
And the fact that you have to check for this each time you reference the
object when a public synonym exists is a bad perf hit....down with public
synonyms....


Jonathan Lewis wrote in message
<926453356.1892.0...@news.demon.co.uk>...

Rob Edgar

unread,
May 12, 1999, 3:00:00 AM5/12/99
to
Funny you should bring this up.

We have exactly the same problem. ORA600 crashes -- on all snapshot
refreshes
and when I drop and recreate the snaphsot it fails with the "name aleady in
use" erro and its there as a type 10!

We had a crash on Friday recovered and then upgraded to 815 from 805 on the
Saturday and only found the problem on Monday so I am wondering which of the
two events was responsible for this problem.


I was begiining to think it was catlog problem as well.....

Looking at the answers to your post has been a god send.

Why we got the 600 crash in the first place I dont know but I can see that
once I dropped the snapshot the type 10 object was probably created to
handle all the other views or queries that reference this snapshot. As
someone said creating a "real" object ie a view or table is OK as it
replaces the type 10 but it wont allow you to create a snapshot if the type
10 exists (same I guess for whatever yours was).

So I solved it by recreating the snapshots with a "1" appended to there name
ie "DO_IT1" which works then create a synonym with the original snapshot
name ie "DO_IT". This works as a synonym replaces the type 10, and then all
my other views and queries work without a change.

Rob

tash...@my-dejanews.com wrote in message <7h7m62$n3o$1...@nnrp1.deja.com>...
>Hello,
>
>Does anybody know what object with type 10 means in Oracle?
>
>It is a long story to tell why I am asking about it.
>But, in short, we are running Oracle Parallel Server 8.0.5.1.1 on
>OSF1 v4.0 and I think that Oracle data dictionary is corrupted.
>(sometimes server dumps core with code ORA-0600 -- internal error).
>
>I looked at the source of sys.all_objects view and noticed that
>objects with type 10 is just skipped in output of that view:
>
>...
>
> and (o.type# not in (1 /* INDEX - handled below */,
> 10 /* NON-EXISTENT */)
>...
>

tash...@my-dejanews.com

unread,
May 12, 1999, 3:00:00 AM5/12/99
to
First of all, thank you (and other guys) for all your replies.
I verified it -- that's a correct answer.

So, we know that objects with type 10 (in my schema) is:
1. objects referenced by my objects
and, at the same time
2. have public synonyms
3. even if I drop my object (view v1 in Jonathan's example),
reference to the t1 still remains in the obj$. At least for
some time, until SMON or PMON will purge them.

Tim

In article <926453356.1892.0...@news.demon.co.uk>,


"Jonathan Lewis" <jona...@jlcomp.demon.co.uk> wrote:
> 'Non-existent' objects exist to handle
> 'negative dependency' tracking.
>
> Say you have a view
>
> create or replace view v1 as
> select * from t1;
>
> but T1 is actually a public synonym to a table in

> someone else's schema. The validity of this
> view is dependent on the fact that there is
> no object named T1 in your schema; so
> Oracle creates a 'non-existent' object in
> your schema that the view can depend on.
>
> Then, when you create an object called T1 in
> your schema, this causes the elimination of
> the 'non-existent' object, which automatically
> causes the invalidation and recompilation of
> the view to use your table.
>
> --
>
> Jonathan Lewis
> Yet another Oracle-related web site: www.jlcomp.demon.co.uk
>

> tash...@my-dejanews.com wrote in message
<7h7m62$n3o$1...@nnrp1.deja.com>...
> >Hello,
> >
> >Does anybody know what object with type 10 means in Oracle?
> >
> >It is a long story to tell why I am asking about it.
> >But, in short, we are running Oracle Parallel Server 8.0.5.1.1 on
> >OSF1 v4.0 and I think that Oracle data dictionary is corrupted.
> >(sometimes server dumps core with code ORA-0600 -- internal error).
> >
> >I looked at the source of sys.all_objects view and noticed that
> >objects with type 10 is just skipped in output of that view:
> >
> >...
> >
> > and (o.type# not in (1 /* INDEX - handled below */,
> > 10 /* NON-EXISTENT */)
> >...
> >
>
>

0 new messages