Oracle namespace Source: http://hi.baidu.com/yinyuman/blog/item/ac65da2a785ae526d42af1cf.html
Don't know if you have noticed such a problem in the course of learning, when you create a table named Test. Maybe a few days later, when you do an index or a view experiment, you want to create an index or view of the name test again, Oracle prompts you that the object already exists. I didn't really care, I thought it was possible to create an object with the same name before. I can do more experiments. I found something fishy in it, for example, I have a table called test, so when I create a Test view, it will be an error, but if I do not create a view, Instead of an index called Test, there is no error. This brings out the concept of namespaces, which I have never thought about in Oracle. So went to the Internet to search some relevant information, I did the next experiment, here a small sum up ~
Namespaces define a set of object types, in which the names of the objects must be unique, and of course, the same name can be used in different namespaces.
The following object types share the same namespace:
tables
views
sequences
Private synonyms
stand-alone procedures
Stand-alone stored functions
Packages
materialized views
user-defined Types
Therefore, if there is a table in the database called Test, then you cannot create a view called Test, at least in a schema that is unlikely to occur.
The following object types have their own namespaces:
indexes
constraints
clusters
database triggers
Private Database Links
Dimensions
So you can create an index called Test, even in the same schema.
Object types that are not limited by schema (Non schema objects) have their own namespaces, as follows:
User Roles
Public synonyms
Public Database Links
tablespaces
Profiles
parameter Files (pfiles) and server Parameter files (spfiles)
So two Non-schema objects can use the same name. ......