[Home] [Help]
The following lines contain the word 'select', 'insert', 'update' or 'delete':
l_level_considered.delete;
l_dim.level_groups.delete;
bsc_aw_utility.delete_table('bsc_aw_temp_vn',null);
execute immediate 'insert into bsc_aw_temp_vn(name,id) values(:1,:2)' using l_level,l_id;
g_stmt:='select distinct name,id from bsc_aw_temp_vn order by id';
p_dim.level_groups(1).levels.delete;
p_dim.level_groups(1).parent_child.delete;
p_dim.level_groups(1).zero_levels.delete;
p_dim.level_groups(1).rec_levels.delete;
p_dim.kpi_for_dim.delete;
updates the metadata and then creates the aw objects for new dim
the logic is as follows:
*/
procedure implement_dim_aw(
p_dimensions in out nocopy dimension_tb,
p_affected_kpi in out nocopy dbms_sql.varchar2_table
) is
--
--
Begin
if g_debug then
log_n('In implement_dim_aw');
bsc_aw_utility.delete_aw_object(l_objects(i).object);
bsc_aw_utility.delete_aw_object(l_objects(i).object);
bsc_aw_utility.delete_aw_object(l_objects(i).object);
bsc_aw_utility.delete_aw_object(l_objects(i).object);
bsc_aw_md_api.drop_dim(p_dim_name);--this will delete all child objects in metadata
g_commands.delete;
bsc_aw_utility.add_g_commands(g_commands,'sql declare c1 cursor for select --');
l_levels.delete;
l_parent_child.delete;
l_zero_levels.delete;
l_snowflake_levels.delete;
l_levels.delete;
l_parent_child.delete;
l_zero_levels.delete;
l_snowflake_levels.delete;
bsc_aw_utility.add_g_commands(g_commands,'sql declare c1 cursor for select --');
/*deletes for dimensions
delete are handled in the following way
delete table has 2 columns. dim_level and delete_value. say we have geog dim. city,state,country
we want to delete all cities in ca and ca
the table has
'city' 'SF'
'city' 'LA'
'state' 'CA'
for each level in the dim, we see if there are delete values. if there are we do the following
mark limit cubes for the parent value for re-agg.
in our case, we will mark state of ca and country of usa for re-agg
the dim values are deleted in dim load module
*/
--p_level_group.levels(i).level_name
bsc_aw_utility.add_g_commands(g_commands,'allstat');
bsc_aw_utility.add_g_commands(g_commands,'sql declare c1 cursor for select delete_value from bsc_aw_dim_delete '||
' where dim_level=\'''||p_level_group.levels(i).level_name||'\''');
/*5064802. we need to handle the case where the dim value in bsc_aw_dim_delete does not exist in aw dim. go on append mode. then
dim loader delete will delete them */
bsc_aw_utility.add_g_commands(g_commands,':append '||p_level_group.levels(i).level_name||' --');
g_commands.delete;
bsc_aw_utility.add_g_commands(g_commands,'sql declare c1 cursor for select --');
bsc_aw_utility.add_g_commands(g_commands,'sql declare c1 cursor for select --');
bsc_aw_utility.add_g_commands(g_commands,'sql declare c1 cursor for select --');
g_commands.delete;
bsc_aw_utility.add_g_commands(g_commands,'sql declare c1 cursor for select --');
bsc_aw_utility.add_g_commands(g_commands,'sql declare c1 cursor for select --');
bsc_aw_utility.add_g_commands(g_commands,'sql declare c1 cursor for select --');
bsc_aw_utility.add_g_commands(g_commands,'delete_value from bsc_aw_dim_delete '||
' where dim_level=\'''||p_dimension.level_groups(1).levels(1).level_name||'\''');
l_dim.level_groups(1).data_source.data_source:='(select distinct data_type from bsc_sys_benchmarks_b)';
l_dim.level_groups(1).data_source.inc_data_source:='(select distinct data_type from bsc_sys_benchmarks_b)';
g_commands.delete;
bsc_aw_utility.add_g_commands(g_commands,'insert into bsc_aw_dim_data values (\'''||p_dim_level||'\'',:'||p_dim_level||') DIRECT=YES');
l_olap_object_relation.delete;
delete old metadata
insert new metadata
endif
merge:
delete old metadata
create dim with merge mode
add level name dim / relation
create new levels
recreate program
insert metadata
--
*/
procedure correct_old_dim(p_dim dimension_r,p_flag out nocopy varchar2) is
l_old_dim dimension_tb;
p_old_dim.level_groups.delete;
l_parents.delete;
bsc_aw_dbms_aw.execute('maintain '||p_level_name_dim||' delete '''||p_old_level_groups(i).parent_child(j).parent_level||'.'||
p_old_level_groups(i).parent_child(j).child_level||'''');
bsc_aw_dbms_aw.execute('maintain '||p_level_name_dim||' delete '''||p_old_level_groups(i).zero_levels(j).level_name||'.'||
p_old_level_groups(i).zero_levels(j).child_level_name||'''');
l_new_level_groups.delete;
l_level_considered.delete;
l_pc_subset_temp.delete;