创建原始表create table TABLE1
(
  F1 VARCHAR2(10),
  F2 VARCHAR2(10),
  F3 VARCHAR2(10),
  F4 VARCHAR2(10),
  F5 VARCHAR2(10),
  F6 VARCHAR2(10),
  F7 VARCHAR2(10),
  F8 VARCHAR2(10)
)
再分别创建四个视图create or replace view v1 as select f1,f2 from table1;create or replace view v2 as select f3,f4 from table1;
create or replace view v3 as select f5,f6 from table1;create or replace view v4 as select f7,f8 from table1;
并在四个视图上再建一个视图出来:
   create or replace view v as select f1,f2 from v1  union all
                               select F3,F4 from v2 union all
                               select F5,F6 from v3 union all
                               select  F7,F8 from v4;编辑视图v数据时报:
  ORA-01446:无法从含DISTINT、GROUP BY等子句的视图中选择ROWID。
求解决方法,谢谢!

解决方案 »

  1.   

    看起来视图V的多条数据有可能对应table1的一条数据,估计这样的话oracle没法处理了,赫赫。察看v的数据应该没问题。编辑的话就在原始表上编辑好了
      

  2.   

    字段名应该统一一下吧,否则视图的字段不能确定统一还是不行,就用select a,b from (select ... union all select ... union all select ...)