问题是:
这可能吗?
或者,因为
bitmap_construct_agg
返回 BLOB 或 RAW,所以根本不可能?
这是我的测试用例:
create table testmvb(id number, subid number);
create materialized view log on testmvb with sequence, rowid(id, subid) including new values;
create materialized view testmvb_mv
refresh fast on commit
as
select id,
bitmap_construct_agg(subid) subids,
bitmap_bucket_number(subid) buk,
count(*) cnt_all
from testmvb
group by id, bitmap_bucket_number(subid);
仅刷新完整刷新列subids...
蒂亚, 安德鲁.
19.22起
SQL> create table testmvb(id number, subid number);
Table created.
SQL> create materialized view log on testmvb with sequence, rowid(id, subid) including new values;
Materialized view log created.
SQL>
SQL> create materialized view testmvb_mv
2 refresh fast on commit
3 as
4 select id,
5 bitmap_construct_agg(subid) subids,
6 bitmap_bucket_number(subid) buk,
7 count(*) cnt_all
8 from testmvb
9 group by id, bitmap_bucket_number(subid);
Materialized view created.
SQL>
SQL> insert into testmvb values (1,10);
1 row created.
SQL> insert into testmvb values (2,20);
1 row created.
SQL> insert into testmvb values (3,30);
1 row created.
SQL> commit;
Commit complete.
SQL>
SQL> select * from testmvb_mv;
ID SUBIDS BUK CNT_ALL
---------- ------------------------------ ---------- ----------
1 000004 1 1
2 00000010 1 1
3 0000000040 1 1
所以我看到了我所期望的。您能详细说明一下您所看到的情况吗?