物化视图在物流系统中的应用

物化视图又叫实体化视图,和普通视图不同的是,他可以当作基表使用。

物流系统中总库房和小公司库房物资编码库的同步,一直很麻烦,每次都要手工同步,因此采用物化视图技术实现同步。

当前现状如下:

在同一个oracle服务器上,并存着三个物流数据库,分别是总库房、龙虎泡、新肇,对应表空间和用户名分别是:JCWL LHPXZHAO。都是普通用户权限。

建立物化视图步骤如下:

1、  提升JCWL用户权限

用管理员用户登录数据库,临时给JCWL用户DBA权限,使JCWL用户能够拥有建立用户的权限。

2、  删除小公司用户

删除小公司用户LHPXZHAO

Drop  user  LHP  cascade;

删除用户时,会把用户所属的表连带删除,因此要记得备份相关用户下的数据库表。

3、  JCWL用户建立用户

JCWL用户建立LHP用户。

Create  user  LHP  identified  by  LHP  default  tablespace  LHP;

因为LHP用户是要读取用户JCWL下的T_WL_ZD_WZBM表,所以应该用JCWL用户新建用户LHP

4、  建立物化视图日志

访问物化视图需要物化视图日志,在JCWL用户表下建立表T_WL_ZD_WZBM的日志,需要注意的是,表要有主键,物化视图日志也要有主键。

Create  materialized  view  log  on  T_WL_ZD_WZBM  with  primary  key;

物化视图日志的主键会在创建时自动从源表中获取。

如果日志已存在,需要先删除日志

Drop  materialized  view  log  on  t_wl_zd_wzbm;

一定要用命令才能彻底删除,在pl/sql中不能彻底删除。

5、  给用户LHP赋权限

Grant  connect  to  lhp;

Grant  create  session  to LHP;

Grant  create  table  to  LHP;

Grant  unlimited  tablespace  to  LHP;

Grant  create  materialized  view  to  LHP;

Grant  select  on  t_wl_zd_wzbm  to  LHP;

Grant  select  on  mlog$_t_wl_zd_wzbm  to  LHP;

Grant  on  commit  refresh  to  LHP;

要想导入数据,则前4个权限是必须赋的,否则用户没有权限导入数据。

6、  导入数据库

Imp  lhp/lhp@jcwl25  file=d:\database\lhp.dmp  full=y

7、  LHP登录

 

8、  LHP用户建立物化视图

如果表T_WL_ZD_WZBM存在,先删除表

Drop  table  t_wl_zd_wzbm;

建立物化视图

Create materialized view t_wl_zd_wzbm refresh fast on commit as select * from jcwl.t_wl_zd_wzbm;

 

JCWL用户登录

SQL> drop user lhp cascade;

 

User dropped

 

SQL> create user lhp identified by lhp default tablespace lhp;

 

User created

 

SQL> grant connect to lhp;

 

Grant succeeded

 

SQL> grant create session to lhp;

 

Grant succeeded

 

SQL> grant create table to lhp;

 

Grant succeeded

 

SQL> grant unlimited tablespace to lhp;

 

Grant succeeded

 

SQL> create materialized view log on t_wl_zd_wzbm with primary key;

 

create materialized view log on t_wl_zd_wzbm with primary key

 

ORA-12000: 实体化视图日志已经存在于表 'T_WL_ZD_WZBM'

 

SQL> drop materialized view log on t_wl_zd_wzbm;

 

Materialized view log dropped

 

SQL> create materialized view log on t_wl_zd_wzbm with primary key;

 

Materialized view log created

 

SQL> Grant  create  materialized  view  to  LHP;

 

Grant succeeded

 

SQL> Grant  select  on  t_wl_zd_wzbm  to  LHP;

 

Grant succeeded

 

SQL> Grant  select  on  mlog$_t_wl_zd_wzbm  to  LHP;

 

Grant succeeded

 

SQL> Grant  on  commit  refresh  to  LHP;

 

Grant succeeded

 

LHP用户登录

SQL> Create materialized view t_wl_zd_wzbm refresh fast on commit as select * from jcwl.t_wl_zd_wzbm;

 

Materialized view created

 

删除物化视图

drop materialized view t_wl_zd_wzbm

转载于:https://www.cnblogs.com/dqhuanghe/archive/2008/11/14/1333701.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值