Synonym_View_Materialized和Public对象

创建同义词语法

CREATE [OR REPLACE] [PUBLIC] SYNONYM [schema.] 同义词名称 FOR [schema.] object [@dblink];

用户具备select any table权限即可创建(比如授予用户dba权限即可创建)

CREATE SYNONYM synonym_name FOR table.column虽然也正常创建,但是select * from synonym_name会报错ORA-00980:同义词转换不再有效

 

创建视图语法

CREATE [OR REPLACE] VIEW view_name as subquery 

用户必须具备对象权限才可创建(比如select * from table1授予用户dba权限也不行,必须单独授予用户table1的对象,grant select on table1 to user

 

目前public对象使用较多的就是db_linkSYNONYM两类

临时表创建时虽然要加public,但是owner不是publicowner就是创建它的用户,而且dba_tables.tablespace_name为空。

 

ALLDBAUSER开头的一般都是公共同义词如下

CREATE OR REPLACE PUBLIC SYNONYM ALL_TABLES FOR SYS.ALL_TABLES;

CREATE OR REPLACE PUBLIC SYNONYM DBA_TABLES FOR SYS.DBA_TABLES;

CREATE OR REPLACE PUBLIC SYNONYM USER_TABLES FOR SYS.USER_TABLES;

SYSALLDBAUSER开头的就是视图了

CREATE OR REPLACE FORCE VIEW SYS.DBA_TABLES(字段1,字段2,...)

AS SELECT.....


 


1.  同义词和视图都不占空间,在user_segments.segment_name一栏没有同义词和视图的对象

2.  物化视图占用空间,但是在user_segments.segment_type显示的值是table而不是MATERIALIZED VIEW

3.  Schema下的对象可以和公共同义词同名,但是同一schema下各类对象之间不能同名,比如同一个用户下不能同在同样名称的表、视图、私有同义词,否则报错ORA-00955:名称已由现有对象使用

4.  对表进行DDL操作后,视图或同义词的状态会变成INVALID;当再次引用这个视图或同义词时,视图或同义词会自动编译不用刷新,状态会变成VALID,无需人工干预,当然前提是不改变原对象的名称;MV需要自动刷新或者手动刷新的

5.  存在同名对象(表、视图、私有同义词)和公共同义词时,数据库优先选择对象作为目标,最后才是公共同义词

6.  Desc的对象可以是表、视图、私有同义词、公共同义词

7.  综合上面56得出结论:select * from name1时,是先看表是否有叫name1的对象,再看视图是否有叫name1的对象,再看私有同义词是否有叫name1的对象,最后才看公共同义词是否有叫name1的对象,如果都没有则报错ORA-00942:表或视图不存在

8.  视图和同义词不能执行修改字段类型长度的操作,但是可以执行dml语句如updatedelete,修改的数据最终是base table上的数据

9.  MV也可以直接updatedelete,但是不影响base table

10.同义词可以创建在视图CREATE SYNONYM SYNONYM_NAME for VIEW_NAME

11.同义词只能在建立一个对象上,比如一张表或一张视图,视图可以建立在多张表上,建立在多张表上的视图也可以建立同义词。


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

转载于:http://blog.itpub.net/30126024/viewspace-2122000/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值