oracle 命名空间(转载)

oracle 命名空间
来源:http://hi.baidu.com/yinyuman/blog/item/ac65da2a785ae526d42af1cf.html

不知道大家在学习的过程中有没有注意到过这样的一个问题,当你创建一个表,名字为TEST。也许过几天当你做索引或者视图实验的时候,想再次创建一个名字为TEST的索引或视图的时候,ORACLE会提示你已经存在该对象。本来我也没太在意,我以为就是以前可能创建过一个同名的对象呗,可做的实验多了我发现好像里面有些蹊跷,比如说我有个表叫TEST,那么当我再创建一个TEST视图的时候就会报错,可我如果再创建的不是视图,而是一个叫做TEST的索引的时候,就不会报错。由此引申出了命名空间的概念,在这之间我一直没在ORACLE中思考过这个概念。于是去网上搜了些相关资料,自己做了下实验,在这里小总结一下~

命名空间定义了一组对象类型,在命名空间里,对象的名字必须是唯一的,当然,在不同的命名空间里,是可以使用相同的的名字的。

 

下面的对象类型共享同一个命名空间:

• Tables

• Views

• Sequences

• Private synonyms

• Stand-alone procedures

• Stand-alone stored functions

• Packages

• Materialized views

• User-defined types

 

 

因此,如果数据库中有一个表叫做TEST,那么就不能再创建一个叫做TEST的视图,至少,在一个schema中是不可能出现这种现象的。

 

下面的对象类型有各自的命名空间:

• Indexes

• Constraints

• Clusters

• Database triggers

• Private database links

• Dimensions

 

 

所以你可以创建一个叫做TEST的索引,即使在相同的schema中。

 

不受Schema局限的对象类型(Non schema objects)有它们自己的命名空间,如下:

• User roles

• Public synonyms

• Public database links

• Tablespaces

• Profiles

• Parameter files (PFILEs) and server parameter files (SPFILEs)

所以两个Non-schema objects可以用相同的名字。 ......

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24763419/viewspace-696443/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/24763419/viewspace-696443/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值