Может быть, это поможет ...
Проверить таблицу и данные (из вашего вопроса: "... вставлять данные в таблицу надмножества только для тех столбцов, которые присутствуют в подмножестве. Для столбцов, которые не являютсяприсутствует в подмножестве, я хочу поставить некоторое значение по умолчанию ")
create table superset (
id number generated always as identity start with 7000 primary key
, col1 number default 111
, col2 number default 222
, col3 number default 333
, col4 number default 444
, col5 number default 555
, col6 number default 666
, remarks varchar2( 256 ) default 'subset id unknown'
);
-- insert test data
begin
-- case 1
insert into superset ( col1, col2, remarks ) values ( 1, 2, '**CASE1**' ) ;
-- case 2
insert into superset ( col1, col5, col6, remarks ) values ( 1, 5, 6, '**CASE2**' ) ;
-- case 3
insert into superset ( col3, col6, remarks ) values ( 3, 6 , '**CASE3**') ;
--4 some other stuff - the inserted rows do not belong to any known subset
insert into superset ( col1 ) values ( 1 );
insert into superset ( col2 ) values ( 2 );
insert into superset ( col3 ) values ( 3 );
insert into superset ( col4 ) values ( 4 );
insert into superset ( col5 ) values ( 5 );
insert into superset ( col6 ) values ( 6 );
end;
/
Таблица SUPERSET теперь содержит:
SQL> select * from superset;
ID COL1 COL2 COL3 COL4 COL5 COL6 REMARKS
7000 1 2 333 444 555 666 **CASE1**
7001 1 222 333 444 5 6 **CASE2**
7002 111 222 3 444 555 6 **CASE3**
7003 1 222 333 444 555 666 subset id unknown
7004 111 2 333 444 555 666 subset id unknown
7005 111 222 3 444 555 666 subset id unknown
7006 111 222 333 4 555 666 subset id unknown
7007 111 222 333 444 5 666 subset id unknown
7008 111 222 333 444 555 6 subset id unknown
Теперь вы можете создать представление для каждого подмножества, например
create or replace view subset1_view
as
select col1, col2
from superset
where remarks = '**CASE1**' ;
SQL> select * from subset1_view;
COL1 COL2
1 2
Или
create or replace view subset1_view
as
select *
from superset
where remarks = '**CASE1**' ;
SQL> select * from subset1_view;
ID COL1 COL2 COL3 COL4 COL5 COL6 REMARKS
7000 1 2 333 444 555 666 **CASE1**