oracle 物理视图和同义词的综合运用

来源:互联网 发布:centos 压缩 编辑:程序博客网 时间:2024/04/29 18:06

前段时间接触了oracle,学了一点知识,整理一下,希望给碰到同样问题朋友一个帮助,自己也留下一点记忆,赫赫

 

1. 使用sys用户对mysysuser 和 commonuser 授权,使用plsql工具实现的;
          建议mysysuser用户权限是dba ,connection ,resource
2  使用mysysuser用户登录到xxxxx数据库,创建n_bj_applyorder 和 n_bj_crew 两个表 ,插入所提供的数据
3  创建物理视图基于这两个表如下:
   
CREATE MATERIALIZED VIEW LOG ON mysysuser.n_bj_applyorder  WITH ROWID including NEW VALUES ;
CREATE MATERIALIZED VIEW LOG ON mysysuser.n_bj_crew  WITH ROWID including NEW VALUES ;
CREATE MATERIALIZED VIEW mysysuser.crew_applyorder_mv
build immediate
REFRESH fast on commit
 AS
 SELECT a.rowid a_rowid,b.Rowid b_rowid, a.applyorderid,b.CREWID
 FROM mysysuser.n_bj_applyorder a, mysysuser.n_bj_crew b
 where a.applyorderid = b.applyorderid;
查询所创建的物理视图数据,存在数据,这时可以测试插入物理视图,看原表是否有变化及原表有变化是否物理视图有变化等
4  创建同义词对该物理视图:
create synonym commonuser.syn_crew_applyorder for mysysuser.crew_applyorder_mv
这样程序中就可以使用同义词或者物理视图了去操作表了。我在解决这些技术问题时,是因为工作要求才这么做的,其中也遇到了一些问题,如用户权限问题导致同义词不能操作数据,原表不能插入数据,创建物理视图不能使用inner join 连接等等