A session is established when a user logs onto a database. Object names are
resolved relative to the current user session. The
username of the current user is the default schema. The database to which
the user has directly logged-on is the default database.

Oracle has separate namespaces for different classes of objects. All objects
in the same namespace must have distinct names, but
two objects in different namespaces can have the same name. Tables, views,
snapshots, sequences, synonyms, procedures,
functions, and packages are in a single namespace. Triggers, indexes, and
clusters each have their own individual namespace. For
example, there can be a table, trigger, and index all named SCOTT.EMP_TAB.

Based on the context of an object name, Oracle searches the appropriate
namespace when resolving the name to an object. For
example, in the following statement:

DROP CLUSTER Test

Oracle looks up TEST in the cluster namespace.

Rather than supplying an object name directly, you can also refer to an
object using a synonym. A private synonym name has the
same syntax as an ordinary object name. A public synonym is implicitly in
the PUBLIC schema, but users cannot explicitly
qualify a synonym with the schema PUBLIC.

Synonyms can only be used to reference objects in the same namespace as
tables. Due to the possibility of synonyms, the
following rules are used to resolve a name in a context that requires an
object in the table namespace:

1.Look up the name in the table namespace.

2.If the name resolves to an object that is not a synonym, then no further
work is necessary.

3.If the name resolves to a private synonym, then replace the name with
the definition of the synonym and return to step 1.

4.If the name was originally qualified with a schema, then return an
error; otherwise, check if the name is a public synonym.

5.If the name is not a public synonym, return an error; otherwise, then
replace the name with the definition of the public

synonym and return to step 1.

When global object names are used in a distributed database (either
explicitly or indirectly within a synonym), the local Oracle
session resolves the reference as is locally required (for example,
resolving a synonym to a remote table's global object name).
After the partially resolved statement is shipped to the remote database,
the remote Oracle session completes the resolution of
the object as above.

--
Please see the official ORACLE-L FAQ: http://www.orafaq.com
--
Author: Joseph Testa
INET: teci_dba1_at_hotmail.com
Fat City Network Services -- (858) 538-5051 FAX: (858) 538-5051
San Diego, California -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from). You may
also send the HELP command for other information (like subscribing).