The following lines contain the word 'select', 'insert', 'update' or 'delete':
update bsc_olap_object set operation_flag='recreate' where object=p_kpi and object_type='kpi' and context=g_context;
delete bsc_olap_object_relation where parent_object_type='dimension' and parent_object=p_dim_name and context=g_context;
delete bsc_olap_object where parent_object_type='dimension' and parent_object=p_dim_name and context=g_context;
we assume that the dimension entry is clean. this means we dont try a delete here
*/
procedure create_dim(p_dimension bsc_aw_adapter_dim.dimension_r) is
--
l_position varchar2(400);
insert_olap_object(p_dimension.dim_name,'dimension',p_dimension.dim_name,l_dim_type,p_dimension.dim_name,'dimension',p_dimension.property);
insert_olap_object(p_dimension.relation_name,'relation',p_dimension.relation_name,'relation',
p_dimension.dim_name,'dimension',null);
insert_olap_object(p_dimension.level_name_dim,'level name dim',p_dimension.level_name_dim,'dimension',
p_dimension.dim_name,'dimension',null);
insert_olap_object(p_dimension.filter_variable,'filter cube',p_dimension.filter_variable,'variable',
p_dimension.dim_name,'dimension',null);
insert_olap_object(p_dimension.limit_variable,'limit cube',p_dimension.limit_variable,'variable',
p_dimension.dim_name,'dimension',null);
insert_olap_object(p_dimension.rec_level_position_cube,'rec level position cube',p_dimension.rec_level_position_cube,'variable',
p_dimension.dim_name,'dimension',null);
insert_olap_object(p_dimension.base_value_cube,'base value cube',p_dimension.base_value_cube,'variable',
p_dimension.dim_name,'dimension',null);
insert_olap_object(p_dimension.level_groups(i).level_group_name,'level group',null,null,p_dimension.dim_name,'dimension',null);
insert_olap_object(p_dimension.level_groups(i).levels(j).level_name,'dimension level',p_dimension.level_groups(i).levels(j).level_name,'dimension',
p_dimension.dim_name,'dimension',l_property);
insert_olap_object_relation(p_dimension.dim_name,'dimension',p_dimension.limit_variable,
'dim limit cube','dim limit cube',p_dimension.dim_name,'dimension',null);
insert_olap_object_relation(p_dimension.level_groups(i).zero_levels(j).child_level_name,'dimension level',
p_dimension.level_groups(i).zero_levels(j).level_name,'zero code level','zero code level',p_dimension.dim_name,'dimension',l_property);
insert_olap_object(p_dimension.level_groups(i).rec_levels(j).level_name,'recursive level',p_dimension.level_groups(i).rec_levels(j).level_name,
'dimension',p_dimension.dim_name,'dimension',l_property);
insert_olap_object_relation(p_dimension.level_groups(i).rec_levels(j).child_level_name,'dimension level',
p_dimension.level_groups(i).rec_levels(j).level_name,
'recursive parent level','recursive parent level',p_dimension.dim_name,'dimension',l_property);
insert_olap_object_relation(p_dimension.level_groups(i).parent_child(j).child_level,'dimension level',
p_dimension.level_groups(i).parent_child(j).parent_level,
'dimension level','parent level',p_dimension.dim_name,'dimension','level group='||p_dimension.level_groups(i).level_group_name||
',pk='||p_dimension.level_groups(i).parent_child(j).parent_pk||',fk='||p_dimension.level_groups(i).parent_child(j).child_fk);
insert_olap_object(p_dimension.initial_load_program,'dml program',p_dimension.initial_load_program,'dml program initial load',
p_dimension.dim_name,'dimension',null);
insert_olap_object(p_dimension.inc_load_program,'dml program',p_dimension.inc_load_program,'dml program inc load',
p_dimension.dim_name,'dimension',null);
insert_olap_object_relation(p_dimension.kpi_for_dim(i).kpi,'kpi',p_dimension.kpi_for_dim(i).kpi,'kpi','dimension kpi',p_dimension.dim_name,'dimension',
null);
delete bsc_olap_object_relation where parent_object_type='kpi' and parent_object=p_kpi and context=g_context;
delete bsc_olap_object_relation where object=p_kpi and object_type='kpi' and relation_object=p_kpi and relation_object_type='kpi' and
relation_type='dimension kpi';
delete bsc_olap_object where parent_object_type='kpi' and parent_object=p_kpi and context=g_context;
insert_olap_object(p_calendar.dim_name,'dimension',p_calendar.dim_name,'concat dimension',
p_calendar.dim_name,'dimension',p_calendar.property);
insert_olap_object(p_calendar.relation_name,'relation',p_calendar.relation_name,'relation',
p_calendar.dim_name,'dimension',null);
insert_olap_object(p_calendar.denorm_relation_name,'denorm relation',p_calendar.denorm_relation_name,'relation',
p_calendar.dim_name,'dimension',null);
insert_olap_object(p_calendar.end_period_relation_name,'end period relation',p_calendar.end_period_relation_name,'relation',
p_calendar.dim_name,'dimension',null);
insert_olap_object(p_calendar.end_period_relation_name||'.temp','end period temp variable',
p_calendar.end_period_relation_name||'.temp','variable',p_calendar.dim_name,'dimension',null);
insert_olap_object(p_calendar.levels_name,'level name dim',p_calendar.levels_name,'dimension',
p_calendar.dim_name,'dimension',null);
insert_olap_object(p_calendar.end_period_levels_name,'end period level name dim',p_calendar.end_period_levels_name,'dimension',
p_calendar.dim_name,'dimension',null);
insert_olap_object(p_calendar.misc_object(i).object_name,p_calendar.misc_object(i).object_type,
p_calendar.misc_object(i).object_name,p_calendar.misc_object(i).object_type,p_calendar.dim_name,'dimension',null);
insert_olap_object(p_calendar.periodicity(i).dim_name,'dimension level',p_calendar.periodicity(i).dim_name,'dimension',
p_calendar.dim_name,'dimension','periodicity='||p_calendar.periodicity(i).periodicity_id||',db_column_name='||
p_calendar.periodicity(i).db_column_name||',periodicity_type='||p_calendar.periodicity(i).periodicity_type);
insert_olap_object(p_calendar.periodicity(i).aw_time_dim_name,'aw time dim level',p_calendar.periodicity(i).aw_time_dim_name,'dimension',
p_calendar.dim_name,'dimension','periodicity='||p_calendar.periodicity(i).periodicity_id);
insert_olap_object(p_calendar.periodicity(i).aw_bsc_aw_rel_name,'bsc aw time relation',
p_calendar.periodicity(i).aw_bsc_aw_rel_name,'relation',
p_calendar.dim_name,'dimension','periodicity='||p_calendar.periodicity(i).periodicity_id);
insert_olap_object(p_calendar.periodicity(i).aw_aw_bsc_rel_name,'aw bsc time relation',
p_calendar.periodicity(i).aw_aw_bsc_rel_name,'relation',
p_calendar.dim_name,'dimension','periodicity='||p_calendar.periodicity(i).periodicity_id);
insert_olap_object(p_calendar.load_program,'dml program',p_calendar.load_program,'dml program initial load',
p_calendar.dim_name,'dimension',null);
insert_olap_object_relation(p_calendar.kpi_for_dim(i).kpi,'kpi',p_calendar.kpi_for_dim(i).kpi,'kpi','dimension kpi',p_calendar.dim_name,'dimension',
null);
insert_olap_object_relation(p_calendar.parent_child(i).child_dim_name,'dimension level',
p_calendar.parent_child(i).parent_dim_name,'dimension level','parent level',p_calendar.dim_name,'dimension',l_property);
cursor c1 is select * from bsc_olap_object where parent_object=p_parent_object and parent_object_type=p_parent_type
and context=g_context order by object_type;
cursor c2 is select * from bsc_olap_object where parent_object=p_parent_object and parent_object_type=p_parent_type
and object_type=p_type and context=g_context order by object_type;
cursor c3 is select * from bsc_olap_object where object=p_object and object_type=p_type
and context=g_context order by object_type;
cursor c4 is select * from bsc_olap_object where object=p_object and object_type=p_type and parent_object_type=p_parent_type
and context=g_context order by object_type;
cursor c5 is select * from bsc_olap_object where object=p_object and object_type=p_type and parent_object=p_parent_object
and parent_object_type=p_parent_type and context=g_context order by object_type;
cursor c6 is select * from bsc_olap_object where object_type=p_type and parent_object_type=p_parent_type and context=g_context;
cursor c1 is select * from bsc_olap_object_relation where object=p_object and object_type=p_object_type
and parent_object=p_parent_object and parent_object_type=p_parent_object_type
and context=g_context;
cursor c2 is select * from bsc_olap_object_relation where object=p_object and object_type=p_object_type
and parent_object=p_parent_object and parent_object_type=p_parent_object_type
and relation_type=p_relation_type and context=g_context;
cursor c3 is select * from bsc_olap_object_relation where object=p_object and object_type=p_object_type
and relation_type=p_relation_type and context=g_context;
cursor c4 is select * from bsc_olap_object_relation where parent_object=p_parent_object
and parent_object_type=p_parent_object_type
and context=g_context;
cursor c5 is select * from bsc_olap_object_relation where relation_type=p_relation_type
and parent_object=p_parent_object and parent_object_type=p_parent_object_type
and context=g_context;
cursor c6 is select * from bsc_olap_object_relation where object=p_object and object_type=p_object_type
and context=g_context;
insert_olap_object(p_kpi.kpi,'kpi',null,null,p_kpi.kpi,'kpi','calendar='||p_kpi.calendar||',parent kpi='||p_kpi.parent_kpi);
l_comp_added dbms_sql.varchar2_table; --so we insert into oo distinct composite names
insert_olap_object(p_dim_set.dim_set_name,'kpi dimension set',null,null,p_kpi,'kpi',l_property);
insert the partition, composite info
*/
for i in 1..p_dim_set.partition_template.count loop
l_property:=l_dimset_name_property;
insert_olap_object(p_dim_set.partition_template(i).template_name,'partition template',
p_dim_set.partition_template(i).template_name,'partition template',p_kpi,'kpi',l_property);
insert_olap_object(p_dim_set.measurename_dim,'measurename dim',p_dim_set.measurename_dim,'dimension',p_kpi,'kpi',l_property);
insert_olap_object(p_dim_set.composite(i).composite_name,'measure composite',
p_dim_set.composite(i).composite_name,'composite',p_kpi,'kpi',l_property);
insert_olap_object(p_dim_set.cube_set(i).cube.cube_name,'data cube',p_dim_set.cube_set(i).cube.cube_name,'cube',
p_kpi,'kpi',l_property||',cube type='||p_dim_set.cube_set(i).cube.cube_type||',cube data type='||p_dim_set.cube_set(i).cube.cube_datatype);
insert_olap_object(p_dim_set.cube_set(i).countvar_cube.cube_name,'countvar cube',p_dim_set.cube_set(i).countvar_cube.cube_name,'cube',
p_kpi,'kpi',l_property||',cube type='||p_dim_set.cube_set(i).countvar_cube.cube_type||',cube data type='||
p_dim_set.cube_set(i).countvar_cube.cube_datatype);
insert_olap_object(p_dim_set.cube_set(i).display_cube.cube_name,'display cube',p_dim_set.cube_set(i).display_cube.cube_name,'cube',
p_kpi,'kpi',l_property||',cube type='||p_dim_set.cube_set(i).display_cube.cube_type||',cube data type='||
p_dim_set.cube_set(i).display_cube.cube_datatype);
insert_olap_object(p_dim_set.measure(i).aw_formula.formula_name,'measure formula',p_dim_set.measure(i).aw_formula.formula_name,'formula',
p_kpi,'kpi',l_property||',measure='||p_dim_set.measure(i).measure);
insert_olap_object(p_dim_set.aggmap_operator.measure_dim,'agg map measure dim',p_dim_set.aggmap_operator.measure_dim,
'dimension',p_kpi,'kpi',l_dimset_name_property||'agg map');
insert_olap_object(p_dim_set.aggmap_operator.opvar,'agg map opvar',p_dim_set.aggmap_operator.opvar,
'variable',p_kpi,'kpi',l_dimset_name_property||'agg map');
insert_olap_object(p_dim_set.aggmap_operator.argvar,'agg map argvar',p_dim_set.aggmap_operator.argvar,
'variable',p_kpi,'kpi',l_dimset_name_property||'agg map');
insert_olap_object(p_dim_set.agg_map.agg_map,'agg map',p_dim_set.agg_map.agg_map,'agg map',p_kpi,'kpi',l_dimset_name_property||'agg map');
insert_olap_object(p_dim_set.agg_map_notime.agg_map,'agg map',p_dim_set.agg_map_notime.agg_map,'agg map',p_kpi,'kpi',
l_dimset_name_property||'agg map notime');
insert_olap_object(p_dim_set.dim(i).limit_cube_composite,'limit cube composite',p_dim_set.dim(i).limit_cube_composite,
'composite',p_kpi,'kpi',l_dimset_name_property);
insert_olap_object(p_dim_set.dim(i).limit_cube,'dim limit cube',p_dim_set.dim(i).limit_cube,
'variable',p_kpi,'kpi',l_dimset_name_property);
insert_olap_object(p_dim_set.dim(i).aggregate_marker,'dim aggregate marker',p_dim_set.dim(i).aggregate_marker,
'variable',p_kpi,'kpi',l_dimset_name_property);
insert_olap_object(p_dim_set.dim(i).reset_cube,'dim reset cube',p_dim_set.dim(i).reset_cube,
'variable',p_kpi,'kpi',l_dimset_name_property);
insert_olap_object(p_dim_set.std_dim(i).limit_cube_composite,'limit cube composite',p_dim_set.std_dim(i).limit_cube_composite,
'composite',p_kpi,'kpi',l_dimset_name_property);
insert_olap_object(p_dim_set.std_dim(i).limit_cube,'dim limit cube',p_dim_set.std_dim(i).limit_cube,
'variable',p_kpi,'kpi',l_dimset_name_property);
insert_olap_object(p_dim_set.calendar.limit_cube_composite,'limit cube composite',p_dim_set.calendar.limit_cube_composite,
'composite',p_kpi,'kpi',l_dimset_name_property);
insert_olap_object(p_dim_set.calendar.limit_cube,'dim limit cube',p_dim_set.calendar.limit_cube,
'variable',p_kpi,'kpi',l_dimset_name_property);
insert_olap_object(p_dim_set.calendar.aggregate_marker,'dim aggregate marker',p_dim_set.calendar.aggregate_marker,
'variable',p_kpi,'kpi',l_dimset_name_property);
insert_olap_object(p_dim_set.dim(i).agg_map.agg_map,'dim agg map',p_dim_set.dim(i).agg_map.agg_map,
'agg map',p_kpi,'kpi',l_dimset_name_property);
insert_olap_object(p_dim_set.calendar.agg_map.agg_map,'calendar agg map',p_dim_set.calendar.agg_map.agg_map,'agg map',p_kpi,'kpi',
l_dimset_name_property);
insert_olap_object(p_dim_set.initial_load_program.program_name,'dml program',p_dim_set.initial_load_program.program_name,'dml program initial load',
p_kpi,'kpi',l_dimset_name_property||'DS='||p_dim_set.initial_load_program.ds_base_tables);
insert_olap_object(p_dim_set.inc_load_program.program_name,'dml program',p_dim_set.inc_load_program.program_name,'dml program inc load',p_kpi,'kpi',
l_dimset_name_property||'DS='||p_dim_set.inc_load_program.ds_base_tables);
insert_olap_object(p_dim_set.initial_load_program_parallel.program_name,'dml program',p_dim_set.initial_load_program_parallel.program_name,
'dml program initial load parallel',p_kpi,'kpi',l_dimset_name_property||'DS='||p_dim_set.initial_load_program_parallel.ds_base_tables);
insert_olap_object(p_dim_set.inc_load_program_parallel.program_name,'dml program',p_dim_set.inc_load_program_parallel.program_name,
'dml program inc load parallel',p_kpi,'kpi',l_dimset_name_property||'DS='||p_dim_set.inc_load_program_parallel.ds_base_tables);
insert_olap_object(p_dim_set.LB_resync_program,'LB resync program',p_dim_set.LB_resync_program,
'program',p_kpi,'kpi',l_dimset_name_property);
insert_olap_object(p_dim_set.aggregate_marker_program,'aggregate marker program',p_dim_set.aggregate_marker_program,'program',p_kpi,'kpi',
l_dimset_name_property);
insert_olap_object(p_dim_set.s_view(i).type_name,'relational type',null,null,p_kpi,'kpi',l_dimset_name_property);
insert_olap_object(p_dim_set.s_view(i).s_view,'relational view',null,null,p_kpi,'kpi',l_dimset_name_property);
insert_olap_object(p_dim_set.z_s_view(i).type_name,'relational type',null,null,p_kpi,'kpi',l_dimset_name_property||'zero code');
insert_olap_object(p_dim_set.z_s_view(i).s_view,'relational view',null,null,p_kpi,'kpi',l_dimset_name_property||'zero code');
insert_olap_object_relation(p_dim_set.dim_set_name,'kpi dimension set',p_dim_set.partition_template(i).template_name,'partition name',
'dim set partition template',p_kpi,'kpi',l_property);
insert_olap_object_relation(p_dim_set.partition_template(i).template_name,'partition template',
p_dim_set.partition_template(i).template_partitions(j).partition_name,'partition name',
'partition template partition',p_kpi,'kpi',l_property);
insert_olap_object_relation(p_dim_set.dim_set_name,'kpi dimension set',p_dim_set.composite(i).composite_name,'measure composite',
'dim set measure composite',p_kpi,'kpi',l_property);
insert_olap_object_relation(p_dim_set.dim_set_name,'kpi dimension set',p_dim_set.cube_set(i).cube_set_name,'cube set',
'dim set cube set',p_kpi,'kpi',l_property);
insert_olap_object_relation(p_dim_set.cube_set(i).cube_set_name,'cube set',p_dim_set.cube_set(i).cube.cube_name,'measure cube',
'cube set measure cube',p_kpi,'kpi',l_property);
insert_olap_object_relation(p_dim_set.cube_set(i).cube_set_name,'cube set',p_dim_set.cube_set(i).countvar_cube.cube_name,'countvar cube',
'cube set countvar cube',p_kpi,'kpi',l_property);
insert_olap_object_relation(p_dim_set.cube_set(i).cube_set_name,'cube set',p_dim_set.cube_set(i).display_cube.cube_name,'display cube',
'cube set display cube',p_kpi,'kpi',l_property);
insert_olap_object_relation(p_dim_set.cube_set(i).cube.cube_name,'cube',
p_dim_set.cube_set(i).cube.cube_axis(j).axis_name,'axis name','cube axis',p_kpi,'kpi',l_property);
insert_olap_object_relation(p_dim_set.cube_set(i).countvar_cube.cube_name,'cube',
p_dim_set.cube_set(i).countvar_cube.cube_axis(j).axis_name,'axis name','cube axis',p_kpi,'kpi',l_property);
insert_olap_object_relation(p_dim_set.cube_set(i).display_cube.cube_name,'cube',
p_dim_set.cube_set(i).display_cube.cube_axis(j).axis_name,'axis name','cube axis',p_kpi,'kpi',l_property);
insert_olap_object_relation(p_dim_set.dim_set_name,'kpi dimension set',p_dim_set.dim(i).dim_name,'dimension',
'dim set dim',p_kpi,'kpi',l_property);
insert_olap_object_relation(p_dim_set.dim(i).dim_name||'+'||p_dim_set.dim_set_name,'dimension',
p_dim_set.dim(i).levels(j).level_name,'dimension level','dim set dim level',p_kpi,'kpi',l_property);
insert_olap_object_relation(p_dim_set.dim(i).dim_name,'dimension',p_dim_set.dim(i).limit_cube,'kpi limit cube','kpi limit cube',
p_kpi,'kpi',l_property);
insert_olap_object_relation(p_dim_set.dim(i).dim_name,'dimension',p_dim_set.dim(i).aggregate_marker,'kpi aggregate marker','kpi aggregate marker',
p_kpi,'kpi',l_property);
insert_olap_object_relation(p_dim_set.dim(i).dim_name,'dimension',p_dim_set.dim(i).reset_cube,'kpi reset cube','kpi reset cube',
p_kpi,'kpi',l_property);
insert_olap_object_relation(p_dim_set.dim_set_name,'kpi dimension set',p_dim_set.std_dim(i).dim_name,'dimension',
'dim set std dim',p_kpi,'kpi',l_property);
insert_olap_object_relation(p_dim_set.std_dim(i).dim_name||'+'||p_dim_set.dim_set_name,'dimension',
p_dim_set.std_dim(i).levels(j).level_name,'dimension level','dim set dim level',p_kpi,'kpi',l_property);
insert_olap_object_relation(p_dim_set.dim_set_name,'kpi dimension set',p_dim_set.calendar.aw_dim,'calendar',
'dim set calendar', p_kpi,'kpi',l_property);
insert_olap_object_relation(p_dim_set.dim_set_name,'kpi dimension set',p_dim_set.calendar.periodicity(i).aw_dim,
'periodicity','dim set periodicity',p_kpi,'kpi',l_property);
insert_olap_object_relation(p_dim_set.dim_set_name,'kpi dimension set',p_dim_set.agg_map.agg_map,'agg map','dim set agg map',
p_kpi,'kpi',l_property);
insert_olap_object_relation(p_dim_set.dim_set_name,'kpi dimension set',p_dim_set.agg_map_notime.agg_map,'agg map',
'dim set agg map notime',p_kpi,'kpi',l_property);
insert_olap_object_relation(p_dim_set.dim_set_name,'kpi dimension set',p_dim_set.aggmap_operator.measure_dim,
'agg map measure dim','agg map measure dim',p_kpi,'kpi',l_property);
insert_olap_object_relation(p_dim_set.dim_set_name,'kpi dimension set',p_dim_set.aggmap_operator.opvar,
'agg map opvar','agg map opvar',p_kpi,'kpi',l_property);
insert_olap_object_relation(p_dim_set.dim_set_name,'kpi dimension set',p_dim_set.aggmap_operator.argvar,
'agg map argvar','agg map argvar',p_kpi,'kpi',l_property);
insert_olap_object_relation(p_dim_set.dim_set_name,'kpi dimension set',p_dim_set.measure(i).measure,'measure',
'dim set measure',p_kpi,'kpi',l_property);
insert_olap_object_relation(p_dim_set.dim_set_name,'kpi dimension set',p_dim_set.initial_load_program.program_name,'dml program',
'dml program initial load',p_kpi,'kpi',null);
insert_olap_object_relation(p_dim_set.dim_set_name,'kpi dimension set',p_dim_set.inc_load_program.program_name,'dml program',
'dml program inc load',p_kpi,'kpi',null);
insert_olap_object_relation(p_dim_set.dim_set_name,'kpi dimension set',p_dim_set.initial_load_program_parallel.program_name,'dml program',
'dml program initial load parallel',p_kpi,'kpi',null);
insert_olap_object_relation(p_dim_set.dim_set_name,'kpi dimension set',p_dim_set.inc_load_program_parallel.program_name,'dml program',
'dml program inc load parallel',p_kpi,'kpi',null);
insert_olap_object_relation(p_dim_set.dim_set_name,'kpi dimension set',p_dim_set.LB_resync_program,'LB resync program',
'LB resync program',p_kpi,'kpi',null);
insert_olap_object_relation(p_dim_set.dim_set_name,'kpi dimension set',p_dim_set.aggregate_marker_program,'aggregate marker program',
'aggregate marker program',p_kpi,'kpi',null);
insert_olap_object_relation(p_dim_set.inc_data_source(i).base_tables(j).base_table_name,'base table',
p_dim_set.dim_set_name,'dimension set','base table dim set',p_kpi,'kpi',l_property);
l_bsc_olap_object_relation.delete;
insert_olap_object_relation(p_dim_set.inc_data_source(i).base_tables(j).base_table_name,'base table',
'0','change vector','base table change vector',p_dim_set.inc_data_source(i).base_tables(j).base_table_name,'base table',null);
procedure insert_olap_object(
p_object varchar2,
p_object_type varchar2,
p_olap_object varchar2,
p_olap_object_type varchar2,
p_parent_object varchar2,
p_parent_object_type varchar2,
p_property1 varchar2
) is
Begin
default_context_if_null;
insert into bsc_olap_object(object,object_type,olap_object,olap_object_type,property1,parent_object,parent_object_type,
CREATION_DATE,LAST_UPDATE_DATE,CREATED_BY,LAST_UPDATED_BY,LAST_UPDATE_LOGIN,CONTEXT)
values (p_object,p_object_type,p_olap_object,p_olap_object_type,p_property1,p_parent_object,p_parent_object_type,
sysdate,sysdate,g_who,g_who,g_who,g_context);
log_n('Exception in insert_olap_object '||sqlerrm);
then insert if needed. later we will see if update is needed else.
we do not match olap_object also since given an object and object type, we must not have multiple olap objects for the same entity
*/
procedure merge_olap_object(
p_object varchar2,
p_object_type varchar2,
p_olap_object varchar2,
p_olap_object_type varchar2,
p_parent_object varchar2,
p_parent_object_type varchar2,
p_property1 varchar2
) is
--
l_bsc_olap_object bsc_olap_object_tb;
/*update is risky here. we can have multiple rows of data in l_bsc_olap_object. so which rows do we update here?*/
else
insert_olap_object(p_object,p_object_type,p_olap_object,p_olap_object_type,p_parent_object,p_parent_object_type,p_property1);
procedure insert_olap_object_relation(
p_object varchar2,
p_object_type varchar2,
p_relation_object varchar2,
p_relation_object_type varchar2,
p_relation_type varchar2,
p_parent_object varchar2,
p_parent_object_type varchar2,
p_property1 varchar2
) is
Begin
default_context_if_null;
insert into bsc_olap_object_relation(object,object_type,relation_object,relation_object_type,
relation_type,parent_object,parent_object_type,property1,
CREATION_DATE,LAST_UPDATE_DATE,CREATED_BY,LAST_UPDATED_BY,LAST_UPDATE_LOGIN,CONTEXT)
values (p_object,p_object_type,p_relation_object,p_relation_object_type,
p_relation_type,p_parent_object,p_parent_object_type,p_property1,
sysdate,sysdate,g_who,g_who,g_who,g_context);
log_n('Exception in insert_olap_object_relation '||sqlerrm);
then insert...later update?
*/
procedure merge_olap_object_relation(
p_object varchar2,
p_object_type varchar2,
p_relation_object varchar2,
p_relation_object_type varchar2,
p_relation_type varchar2,
p_parent_object varchar2,
p_parent_object_type varchar2,
p_property1 varchar2
) is
--
l_bsc_olap_object_relation bsc_olap_object_relation_tb;
insert into bsc_olap_object_relation(object,object_type,relation_object,relation_object_type,
relation_type,parent_object,parent_object_type,property1,
CREATION_DATE,LAST_UPDATE_DATE,CREATED_BY,LAST_UPDATED_BY,LAST_UPDATE_LOGIN,CONTEXT)
values (p_object,p_object_type,p_relation_object,p_relation_object_type,
p_relation_type,p_parent_object,p_parent_object_type,p_property1,
sysdate,sysdate,g_who,g_who,g_who,g_context);
log_n('Exception in insert_olap_object_relation '||sqlerrm);
update:
p_relation_object varchar2,
p_relation_object_type varchar2,
p_property varchar2
*/
procedure update_olap_object_relation(
p_object varchar2,
p_object_type varchar2,
p_relation_type varchar2,
p_parent_object varchar2,
p_parent_object_type varchar2,
p_match_columns dbms_sql.varchar2_table,
p_match_values dbms_sql.varchar2_table,
p_set_columns dbms_sql.varchar2_table,
p_set_values dbms_sql.varchar2_table
) is
--
l_stmt varchar2(8000);
l_stmt:='update bsc_olap_object_relation set ';
log('Updated '||sql%rowcount||' rows');
log_n('Exception in update_olap_object_relation '||sqlerrm);
update
p_olap_object varchar2,
p_olap_object_type varchar2,
p_property varchar2,
p_operation_flag varchar2
*/
procedure update_olap_object(
p_object varchar2,
p_object_type varchar2,
p_parent_object varchar2,
p_parent_object_type varchar2,
p_match_columns dbms_sql.varchar2_table,
p_match_values dbms_sql.varchar2_table,
p_set_columns dbms_sql.varchar2_table,
p_set_values dbms_sql.varchar2_table
) is
--
l_stmt varchar2(8000);
l_stmt:='update bsc_olap_object set ';
l_stmt:=l_stmt||'last_update_date=sysdate';
log('Updated '||sql%rowcount||' rows');
log_n('Exception in update_olap_object '||sqlerrm);
delete oor
any parameter can be null. if all are null, full delete happens
*/
procedure delete_olap_object_relation(
p_object varchar2,
p_object_type varchar2,
p_relation_type varchar2,
p_relation_object varchar2,
p_relation_object_type varchar2,
p_parent_object varchar2,
p_parent_object_type varchar2) is
--
Begin
default_context_if_null;
log('delete_olap_object_relation:object='||p_object||', object_type='||p_object_type||
', p_relation_type='||p_relation_type||', p_relation_object='||p_relation_object||
', p_relation_object_type='||p_relation_object_type||', p_parent_object='||p_parent_object||
', p_parent_object_type='||p_parent_object_type||bsc_aw_utility.get_time);
delete bsc_olap_object_relation
where object=nvl(p_object,object)
and object_type=nvl(p_object_type,object_type)
and relation_type=nvl(p_relation_type,relation_type)
and relation_object=nvl(p_relation_object,relation_object)
and relation_object_type=nvl(p_relation_object_type,relation_object_type)
and parent_object=nvl(p_parent_object,parent_object)
and parent_object_type=nvl(p_parent_object_type,parent_object_type)
and context=g_context;
log('Deleted '||sql%rowcount||' rows'||bsc_aw_utility.get_time);
log_n('Exception in delete_olap_object_relation '||sqlerrm);
procedure delete_olap_object(
p_object varchar2,
p_object_type varchar2,
p_olap_object varchar2,
p_olap_object_type varchar2,
p_parent_object varchar2,
p_parent_object_type varchar2) is
--
Begin
default_context_if_null;
log('delete_olap_object:object='||p_object||', object_type='||p_object_type||
', p_olap_object='||p_olap_object||', p_olap_object_type='||p_olap_object_type||
', p_parent_object='||p_parent_object||', p_parent_object_type='||p_parent_object_type||bsc_aw_utility.get_time);
delete bsc_olap_object
where object=nvl(p_object,object)
and object_type=nvl(p_object_type,object_type)
and olap_object=nvl(p_olap_object,olap_object)
and olap_object_type=nvl(p_olap_object_type,olap_object_type)
and parent_object=nvl(p_parent_object,parent_object)
and parent_object_type=nvl(p_parent_object_type,parent_object_type)
and context=g_context;
log('Deleted '||sql%rowcount||' rows'||bsc_aw_utility.get_time);
log_n('Exception in delete_olap_object '||sqlerrm);
insert into bsc_olap_object(object,object_type,olap_object,olap_object_type,property1,parent_object,parent_object_type,
CREATION_DATE,LAST_UPDATE_DATE,CREATED_BY,LAST_UPDATED_BY,LAST_UPDATE_LOGIN,CONTEXT)
values (p_name,'aw workspace',p_name,'aw workspace','BSC AW Workspace','BSC','APPS',
sysdate,sysdate,g_who,g_who,g_who,g_context);
delete bsc_olap_object where object=p_name;
this is read into a table of records format. then we can update, insert etc.
its then saved back into this format
we have 2 api
get_runtime_parameters(obj,objtype,par obj,par objtype,table of records (output))
update_runtime_parameters(table of records (input))
table of records has obj,type,par obj and par obj type so we can update
*/
/*
types of input
obj yes, obj type yes, par obj yes, par obj type yes
obj yes, obj type yes, par obj no, par obj type no
obj no, obj type no, par obj yes, par obj type yes
obj no, obj type no, par obj no, par obj type no
procedure get_runtime_parameters(
object varchar2,
object_type varchar2,
parent_object varchar2,
parent_object_type varchar2,
p_parameters out nocopy bsc_runtime_tb
) is
--
--
Begin
null;