有三个主体站点A,B,C;它们的都有一个表Test,表名相同,结构也相同,数据不同.
现在要把三个表中的数据发布到一台服务器的同一张表上.
我使用了oracle的高级复制.按照
http://www.jz123.cn/Article/10/137/2008/2008040423751.html
中介绍的方法在服务器上建了对应于主体站点A的物化视图Test,但要再建对应于主体站点B物化视图
时出错:
ORA-23309:对象xx.TEST(属于类型SNAPSHOT)已经存在
...
...目前的表结构:
主体站点A 表Test:
aa  bb  cc
1   te  s
2   ei  di
主体站点B 表Test:
aa  bb  cc
11  FE  sS
21  VE  DS
主体站点C 表Test:
aa  bb   cc
33  SCE  SsS
31  DVE  VDS最后想得到的结果:
发布到服务器上 表Test:
aa  bb  cc
1   te  s
2   ei  di
11  FE  sS
21  VE  DS
33  SCE  SsS
31  DVE  VDS但是现在只有主体站点A的发布成功,主体站点B和C的数据怎样加?

解决方案 »

  1.   

    从三库中分别查询数据,然后使用union
      

  2.   

    dawugui :如果在union后的视图中查询数据,数据量大的话会很慢的吧。还有没其它什么好方法呢?
    ahua3515 :你的方法能不能具体说明下。
    谢谢啊。
      

  3.   

    难道只有union一种方式了吗?
      

  4.   

    在建立union后的视图如果是物化视图的话是不会慢的。不过数据是有一定的偏差的。物化视图跟视图不一样的。他像表一样是占用数据库空间的。你在查询物化视图的时候就像查询这么一张表的速度一样快的