您的位置:首页 > 其它

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

2014-04-13 02:14 141 查看
物化视图又叫实体化视图,和普通视图不同的是,他可以当作基表使用。

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

当前现状如下:

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

建立物化视图步骤如下:

1、  提升JCWL用户权限

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

2、  删除小公司用户

删除小公司用户LHP和XZHAO。

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐