1: package EDW_ALL_COLLECT AUTHID CURRENT_USER AS
2: /*$Header: EDWACOLS.pls 115.29 2004/04/06 16:29:15 vsurendr ship $*/
3:
4: g_level_order EDW_OWB_COLLECTION_UTIL.varcharTableType;
5: g_number_of_levels number:=0;
6: g_mapping_ids EDW_OWB_COLLECTION_UTIL.numberTableType;
7: g_primary_src EDW_OWB_COLLECTION_UTIL.numberTableType;
8: g_primary_target EDW_OWB_COLLECTION_UTIL.numberTableType;
2: /*$Header: EDWACOLS.pls 115.29 2004/04/06 16:29:15 vsurendr ship $*/
3:
4: g_level_order EDW_OWB_COLLECTION_UTIL.varcharTableType;
5: g_number_of_levels number:=0;
6: g_mapping_ids EDW_OWB_COLLECTION_UTIL.numberTableType;
7: g_primary_src EDW_OWB_COLLECTION_UTIL.numberTableType;
8: g_primary_target EDW_OWB_COLLECTION_UTIL.numberTableType;
9: g_target_input_table EDW_OWB_COLLECTION_UTIL.varcharTableType;
10: g_level_snapshot_logs EDW_OWB_COLLECTION_UTIL.varcharTableType;
3:
4: g_level_order EDW_OWB_COLLECTION_UTIL.varcharTableType;
5: g_number_of_levels number:=0;
6: g_mapping_ids EDW_OWB_COLLECTION_UTIL.numberTableType;
7: g_primary_src EDW_OWB_COLLECTION_UTIL.numberTableType;
8: g_primary_target EDW_OWB_COLLECTION_UTIL.numberTableType;
9: g_target_input_table EDW_OWB_COLLECTION_UTIL.varcharTableType;
10: g_level_snapshot_logs EDW_OWB_COLLECTION_UTIL.varcharTableType;
11: g_fact_src number;
4: g_level_order EDW_OWB_COLLECTION_UTIL.varcharTableType;
5: g_number_of_levels number:=0;
6: g_mapping_ids EDW_OWB_COLLECTION_UTIL.numberTableType;
7: g_primary_src EDW_OWB_COLLECTION_UTIL.numberTableType;
8: g_primary_target EDW_OWB_COLLECTION_UTIL.numberTableType;
9: g_target_input_table EDW_OWB_COLLECTION_UTIL.varcharTableType;
10: g_level_snapshot_logs EDW_OWB_COLLECTION_UTIL.varcharTableType;
11: g_fact_src number;
12: g_fact_target number;
5: g_number_of_levels number:=0;
6: g_mapping_ids EDW_OWB_COLLECTION_UTIL.numberTableType;
7: g_primary_src EDW_OWB_COLLECTION_UTIL.numberTableType;
8: g_primary_target EDW_OWB_COLLECTION_UTIL.numberTableType;
9: g_target_input_table EDW_OWB_COLLECTION_UTIL.varcharTableType;
10: g_level_snapshot_logs EDW_OWB_COLLECTION_UTIL.varcharTableType;
11: g_fact_src number;
12: g_fact_target number;
13: g_fact_map_id number;
6: g_mapping_ids EDW_OWB_COLLECTION_UTIL.numberTableType;
7: g_primary_src EDW_OWB_COLLECTION_UTIL.numberTableType;
8: g_primary_target EDW_OWB_COLLECTION_UTIL.numberTableType;
9: g_target_input_table EDW_OWB_COLLECTION_UTIL.varcharTableType;
10: g_level_snapshot_logs EDW_OWB_COLLECTION_UTIL.varcharTableType;
11: g_fact_src number;
12: g_fact_target number;
13: g_fact_map_id number;
14: g_request_id number;
48: g_min_job_load_size number; --this is the minimum number of rows / job
49: g_sleep_time number;
50: /*******************************************************/
51: /**************Record the number of rows processed and errors*****/
52: g_ins_rows_ready EDW_OWB_COLLECTION_UTIL.numberTableType;
53: g_ins_rows_processed EDW_OWB_COLLECTION_UTIL.numberTableType;
54: g_ins_rows_collected EDW_OWB_COLLECTION_UTIL.numberTableType;
55: g_ins_rows_dangling EDW_OWB_COLLECTION_UTIL.numberTableType;
56: g_ins_rows_duplicate EDW_OWB_COLLECTION_UTIL.numberTableType;
49: g_sleep_time number;
50: /*******************************************************/
51: /**************Record the number of rows processed and errors*****/
52: g_ins_rows_ready EDW_OWB_COLLECTION_UTIL.numberTableType;
53: g_ins_rows_processed EDW_OWB_COLLECTION_UTIL.numberTableType;
54: g_ins_rows_collected EDW_OWB_COLLECTION_UTIL.numberTableType;
55: g_ins_rows_dangling EDW_OWB_COLLECTION_UTIL.numberTableType;
56: g_ins_rows_duplicate EDW_OWB_COLLECTION_UTIL.numberTableType;
57: g_ins_rows_error EDW_OWB_COLLECTION_UTIL.numberTableType;
50: /*******************************************************/
51: /**************Record the number of rows processed and errors*****/
52: g_ins_rows_ready EDW_OWB_COLLECTION_UTIL.numberTableType;
53: g_ins_rows_processed EDW_OWB_COLLECTION_UTIL.numberTableType;
54: g_ins_rows_collected EDW_OWB_COLLECTION_UTIL.numberTableType;
55: g_ins_rows_dangling EDW_OWB_COLLECTION_UTIL.numberTableType;
56: g_ins_rows_duplicate EDW_OWB_COLLECTION_UTIL.numberTableType;
57: g_ins_rows_error EDW_OWB_COLLECTION_UTIL.numberTableType;
58: g_ins_rows_insert EDW_OWB_COLLECTION_UTIL.numberTableType;
51: /**************Record the number of rows processed and errors*****/
52: g_ins_rows_ready EDW_OWB_COLLECTION_UTIL.numberTableType;
53: g_ins_rows_processed EDW_OWB_COLLECTION_UTIL.numberTableType;
54: g_ins_rows_collected EDW_OWB_COLLECTION_UTIL.numberTableType;
55: g_ins_rows_dangling EDW_OWB_COLLECTION_UTIL.numberTableType;
56: g_ins_rows_duplicate EDW_OWB_COLLECTION_UTIL.numberTableType;
57: g_ins_rows_error EDW_OWB_COLLECTION_UTIL.numberTableType;
58: g_ins_rows_insert EDW_OWB_COLLECTION_UTIL.numberTableType;
59: g_ins_rows_update EDW_OWB_COLLECTION_UTIL.numberTableType;
52: g_ins_rows_ready EDW_OWB_COLLECTION_UTIL.numberTableType;
53: g_ins_rows_processed EDW_OWB_COLLECTION_UTIL.numberTableType;
54: g_ins_rows_collected EDW_OWB_COLLECTION_UTIL.numberTableType;
55: g_ins_rows_dangling EDW_OWB_COLLECTION_UTIL.numberTableType;
56: g_ins_rows_duplicate EDW_OWB_COLLECTION_UTIL.numberTableType;
57: g_ins_rows_error EDW_OWB_COLLECTION_UTIL.numberTableType;
58: g_ins_rows_insert EDW_OWB_COLLECTION_UTIL.numberTableType;
59: g_ins_rows_update EDW_OWB_COLLECTION_UTIL.numberTableType;
60: g_ins_rows_delete EDW_OWB_COLLECTION_UTIL.numberTableType;
53: g_ins_rows_processed EDW_OWB_COLLECTION_UTIL.numberTableType;
54: g_ins_rows_collected EDW_OWB_COLLECTION_UTIL.numberTableType;
55: g_ins_rows_dangling EDW_OWB_COLLECTION_UTIL.numberTableType;
56: g_ins_rows_duplicate EDW_OWB_COLLECTION_UTIL.numberTableType;
57: g_ins_rows_error EDW_OWB_COLLECTION_UTIL.numberTableType;
58: g_ins_rows_insert EDW_OWB_COLLECTION_UTIL.numberTableType;
59: g_ins_rows_update EDW_OWB_COLLECTION_UTIL.numberTableType;
60: g_ins_rows_delete EDW_OWB_COLLECTION_UTIL.numberTableType;
61: g_ins_instance_name EDW_OWB_COLLECTION_UTIL.varcharTableType;
54: g_ins_rows_collected EDW_OWB_COLLECTION_UTIL.numberTableType;
55: g_ins_rows_dangling EDW_OWB_COLLECTION_UTIL.numberTableType;
56: g_ins_rows_duplicate EDW_OWB_COLLECTION_UTIL.numberTableType;
57: g_ins_rows_error EDW_OWB_COLLECTION_UTIL.numberTableType;
58: g_ins_rows_insert EDW_OWB_COLLECTION_UTIL.numberTableType;
59: g_ins_rows_update EDW_OWB_COLLECTION_UTIL.numberTableType;
60: g_ins_rows_delete EDW_OWB_COLLECTION_UTIL.numberTableType;
61: g_ins_instance_name EDW_OWB_COLLECTION_UTIL.varcharTableType;
62: g_ins_request_id_table EDW_OWB_COLLECTION_UTIL.numberTableType;
55: g_ins_rows_dangling EDW_OWB_COLLECTION_UTIL.numberTableType;
56: g_ins_rows_duplicate EDW_OWB_COLLECTION_UTIL.numberTableType;
57: g_ins_rows_error EDW_OWB_COLLECTION_UTIL.numberTableType;
58: g_ins_rows_insert EDW_OWB_COLLECTION_UTIL.numberTableType;
59: g_ins_rows_update EDW_OWB_COLLECTION_UTIL.numberTableType;
60: g_ins_rows_delete EDW_OWB_COLLECTION_UTIL.numberTableType;
61: g_ins_instance_name EDW_OWB_COLLECTION_UTIL.varcharTableType;
62: g_ins_request_id_table EDW_OWB_COLLECTION_UTIL.numberTableType;
63: g_ins_collection_status EDW_OWB_COLLECTION_UTIL.varcharTableType;
56: g_ins_rows_duplicate EDW_OWB_COLLECTION_UTIL.numberTableType;
57: g_ins_rows_error EDW_OWB_COLLECTION_UTIL.numberTableType;
58: g_ins_rows_insert EDW_OWB_COLLECTION_UTIL.numberTableType;
59: g_ins_rows_update EDW_OWB_COLLECTION_UTIL.numberTableType;
60: g_ins_rows_delete EDW_OWB_COLLECTION_UTIL.numberTableType;
61: g_ins_instance_name EDW_OWB_COLLECTION_UTIL.varcharTableType;
62: g_ins_request_id_table EDW_OWB_COLLECTION_UTIL.numberTableType;
63: g_ins_collection_status EDW_OWB_COLLECTION_UTIL.varcharTableType;
64: g_number_ins_req_coll number;
57: g_ins_rows_error EDW_OWB_COLLECTION_UTIL.numberTableType;
58: g_ins_rows_insert EDW_OWB_COLLECTION_UTIL.numberTableType;
59: g_ins_rows_update EDW_OWB_COLLECTION_UTIL.numberTableType;
60: g_ins_rows_delete EDW_OWB_COLLECTION_UTIL.numberTableType;
61: g_ins_instance_name EDW_OWB_COLLECTION_UTIL.varcharTableType;
62: g_ins_request_id_table EDW_OWB_COLLECTION_UTIL.numberTableType;
63: g_ins_collection_status EDW_OWB_COLLECTION_UTIL.varcharTableType;
64: g_number_ins_req_coll number;
65: g_dim_rows_processed number;
58: g_ins_rows_insert EDW_OWB_COLLECTION_UTIL.numberTableType;
59: g_ins_rows_update EDW_OWB_COLLECTION_UTIL.numberTableType;
60: g_ins_rows_delete EDW_OWB_COLLECTION_UTIL.numberTableType;
61: g_ins_instance_name EDW_OWB_COLLECTION_UTIL.varcharTableType;
62: g_ins_request_id_table EDW_OWB_COLLECTION_UTIL.numberTableType;
63: g_ins_collection_status EDW_OWB_COLLECTION_UTIL.varcharTableType;
64: g_number_ins_req_coll number;
65: g_dim_rows_processed number;
66: g_diamond_issue boolean;
59: g_ins_rows_update EDW_OWB_COLLECTION_UTIL.numberTableType;
60: g_ins_rows_delete EDW_OWB_COLLECTION_UTIL.numberTableType;
61: g_ins_instance_name EDW_OWB_COLLECTION_UTIL.varcharTableType;
62: g_ins_request_id_table EDW_OWB_COLLECTION_UTIL.numberTableType;
63: g_ins_collection_status EDW_OWB_COLLECTION_UTIL.varcharTableType;
64: g_number_ins_req_coll number;
65: g_dim_rows_processed number;
66: g_diamond_issue boolean;
67: /*
74:
75: /***********************************************/
76: /*********for derived facts**********/
77: g_number_derived_facts number;
78: g_ilog EDW_OWB_COLLECTION_UTIL.varcharTableType;
79: g_dlog EDW_OWB_COLLECTION_UTIL.varcharTableType;
80: g_df_load_pk EDW_OWB_COLLECTION_UTIL.numberTableType;
81: g_df_start_date EDW_OWB_COLLECTION_UTIL.dateTableType;
82: g_fact_dlog varchar2(400);
75: /***********************************************/
76: /*********for derived facts**********/
77: g_number_derived_facts number;
78: g_ilog EDW_OWB_COLLECTION_UTIL.varcharTableType;
79: g_dlog EDW_OWB_COLLECTION_UTIL.varcharTableType;
80: g_df_load_pk EDW_OWB_COLLECTION_UTIL.numberTableType;
81: g_df_start_date EDW_OWB_COLLECTION_UTIL.dateTableType;
82: g_fact_dlog varchar2(400);
83: g_skip_levels EDW_OWB_COLLECTION_UTIL.varcharTableType;
76: /*********for derived facts**********/
77: g_number_derived_facts number;
78: g_ilog EDW_OWB_COLLECTION_UTIL.varcharTableType;
79: g_dlog EDW_OWB_COLLECTION_UTIL.varcharTableType;
80: g_df_load_pk EDW_OWB_COLLECTION_UTIL.numberTableType;
81: g_df_start_date EDW_OWB_COLLECTION_UTIL.dateTableType;
82: g_fact_dlog varchar2(400);
83: g_skip_levels EDW_OWB_COLLECTION_UTIL.varcharTableType;
84: g_number_skip_levels number;
77: g_number_derived_facts number;
78: g_ilog EDW_OWB_COLLECTION_UTIL.varcharTableType;
79: g_dlog EDW_OWB_COLLECTION_UTIL.varcharTableType;
80: g_df_load_pk EDW_OWB_COLLECTION_UTIL.numberTableType;
81: g_df_start_date EDW_OWB_COLLECTION_UTIL.dateTableType;
82: g_fact_dlog varchar2(400);
83: g_skip_levels EDW_OWB_COLLECTION_UTIL.varcharTableType;
84: g_number_skip_levels number;
85: /*******************************************************/
79: g_dlog EDW_OWB_COLLECTION_UTIL.varcharTableType;
80: g_df_load_pk EDW_OWB_COLLECTION_UTIL.numberTableType;
81: g_df_start_date EDW_OWB_COLLECTION_UTIL.dateTableType;
82: g_fact_dlog varchar2(400);
83: g_skip_levels EDW_OWB_COLLECTION_UTIL.varcharTableType;
84: g_number_skip_levels number;
85: /*******************************************************/
86: g_key_set number;--how many keys considered in one shot
87: g_load_pk number;
85: /*******************************************************/
86: g_key_set number;--how many keys considered in one shot
87: g_load_pk number;
88: g_logical_object_type varchar2(400);
89: g_skip_cols EDW_OWB_COLLECTION_UTIL.varcharTableType;
90: g_number_skip_cols number;
91: g_analyze_frequency number;
92: g_fresh_restart boolean;
93: g_op_table_space varchar2(400);
93: g_op_table_space varchar2(400);
94: g_rollback varchar2(400);
95: g_dim_inc_refresh_derv boolean;--if true, propogate dim changes to derv facts.
96: g_smart_update boolean;
97: g_smart_update_cols EDW_OWB_COLLECTION_UTIL.varcharTableType;
98: g_number_smart_update_cols number;
99: g_fk_use_nl number;
100: g_ltc_merge_use_nl boolean;
101: g_fact_smart_update number;
100: g_ltc_merge_use_nl boolean;
101: g_fact_smart_update number;
102: g_read_cfig_options boolean;
103: --------------------inc refresh derv facts from dimensions---
104: g_dim_derv_map_id EDW_OWB_COLLECTION_UTIL.numberTableType;
105: g_derv_fact_id EDW_OWB_COLLECTION_UTIL.numberTableType;
106: g_dim_derv_map_refresh EDW_OWB_COLLECTION_UTIL.booleanTableType;
107: g_dim_derv_map_full_refresh EDW_OWB_COLLECTION_UTIL.booleanTableType;
108: g_number_dim_derv_map_id number;
101: g_fact_smart_update number;
102: g_read_cfig_options boolean;
103: --------------------inc refresh derv facts from dimensions---
104: g_dim_derv_map_id EDW_OWB_COLLECTION_UTIL.numberTableType;
105: g_derv_fact_id EDW_OWB_COLLECTION_UTIL.numberTableType;
106: g_dim_derv_map_refresh EDW_OWB_COLLECTION_UTIL.booleanTableType;
107: g_dim_derv_map_full_refresh EDW_OWB_COLLECTION_UTIL.booleanTableType;
108: g_number_dim_derv_map_id number;
109: g_derv_fact_full_refresh EDW_OWB_COLLECTION_UTIL.numberTableType;--these derv need to be fully refreshed
102: g_read_cfig_options boolean;
103: --------------------inc refresh derv facts from dimensions---
104: g_dim_derv_map_id EDW_OWB_COLLECTION_UTIL.numberTableType;
105: g_derv_fact_id EDW_OWB_COLLECTION_UTIL.numberTableType;
106: g_dim_derv_map_refresh EDW_OWB_COLLECTION_UTIL.booleanTableType;
107: g_dim_derv_map_full_refresh EDW_OWB_COLLECTION_UTIL.booleanTableType;
108: g_number_dim_derv_map_id number;
109: g_derv_fact_full_refresh EDW_OWB_COLLECTION_UTIL.numberTableType;--these derv need to be fully refreshed
110: g_num_derv_fact_full_refresh number;
103: --------------------inc refresh derv facts from dimensions---
104: g_dim_derv_map_id EDW_OWB_COLLECTION_UTIL.numberTableType;
105: g_derv_fact_id EDW_OWB_COLLECTION_UTIL.numberTableType;
106: g_dim_derv_map_refresh EDW_OWB_COLLECTION_UTIL.booleanTableType;
107: g_dim_derv_map_full_refresh EDW_OWB_COLLECTION_UTIL.booleanTableType;
108: g_number_dim_derv_map_id number;
109: g_derv_fact_full_refresh EDW_OWB_COLLECTION_UTIL.numberTableType;--these derv need to be fully refreshed
110: g_num_derv_fact_full_refresh number;
111: g_before_update_table EDW_OWB_COLLECTION_UTIL.varcharTableType;
105: g_derv_fact_id EDW_OWB_COLLECTION_UTIL.numberTableType;
106: g_dim_derv_map_refresh EDW_OWB_COLLECTION_UTIL.booleanTableType;
107: g_dim_derv_map_full_refresh EDW_OWB_COLLECTION_UTIL.booleanTableType;
108: g_number_dim_derv_map_id number;
109: g_derv_fact_full_refresh EDW_OWB_COLLECTION_UTIL.numberTableType;--these derv need to be fully refreshed
110: g_num_derv_fact_full_refresh number;
111: g_before_update_table EDW_OWB_COLLECTION_UTIL.varcharTableType;
112: g_number_before_update_table number;
113: g_max_fk_density number;
107: g_dim_derv_map_full_refresh EDW_OWB_COLLECTION_UTIL.booleanTableType;
108: g_number_dim_derv_map_id number;
109: g_derv_fact_full_refresh EDW_OWB_COLLECTION_UTIL.numberTableType;--these derv need to be fully refreshed
110: g_num_derv_fact_full_refresh number;
111: g_before_update_table EDW_OWB_COLLECTION_UTIL.varcharTableType;
112: g_number_before_update_table number;
113: g_max_fk_density number;
114: g_tables_to_drop EDW_OWB_COLLECTION_UTIL.varcharTableType;
115: g_number_tables_to_drop number;
110: g_num_derv_fact_full_refresh number;
111: g_before_update_table EDW_OWB_COLLECTION_UTIL.varcharTableType;
112: g_number_before_update_table number;
113: g_max_fk_density number;
114: g_tables_to_drop EDW_OWB_COLLECTION_UTIL.varcharTableType;
115: g_number_tables_to_drop number;
116: g_before_update_table_prot varchar2(400);
117: g_create_parent_table_records boolean;
118: g_check_fk_change boolean;
118: g_check_fk_change boolean;
119: g_check_fk_change_number number;
120: -------------------------------------------------------------
121: ---------data alignment----------
122: g_da_cols EDW_OWB_COLLECTION_UTIL.varcharTableType;
123: g_number_da_cols number;
124: g_da_table varchar2(400);
125: g_pp_table varchar2(400);
126: g_master_instance varchar2(400);
154: procedure write_to_log_file_n(p_message varchar2) ;
155: function get_time return varchar2;
156: function is_derived_fact(p_fact varchar2) return boolean ;
157: --procedure write_to_coll_detail_log(p_flag boolean, p_message varchar2) ;
158: procedure write_to_collection_log(p_flag boolean, p_message EDW_OWB_COLLECTION_UTIL.varcharTableType,
159: p_collection_start_date date, p_load_pk number);
160: function is_source_for_derived_fact return boolean ;
161: function check_if_fact_exists(p_fact_name varchar2) return boolean ;
162: function make_collection_log_message(l_status_message out NOCOPY EDW_OWB_COLLECTION_UTIL.varcharTableType)
158: procedure write_to_collection_log(p_flag boolean, p_message EDW_OWB_COLLECTION_UTIL.varcharTableType,
159: p_collection_start_date date, p_load_pk number);
160: function is_source_for_derived_fact return boolean ;
161: function check_if_fact_exists(p_fact_name varchar2) return boolean ;
162: function make_collection_log_message(l_status_message out NOCOPY EDW_OWB_COLLECTION_UTIL.varcharTableType)
163: return varchar2 ;
164: procedure write_to_error_log(p_message varchar2) ;
165: function get_temp_log_data(g_object_name varchar2, g_object_type varchar2) return boolean ;
166: function refresh_all_derived_facts return boolean;
187: p_max_threads number,
188: p_job_queue_processes number
189: ) return varchar2;
190: procedure find_parallel_drill_down(
191: p_levels EDW_OWB_COLLECTION_UTIL.varcharTableType,
192: p_num_levels number);
193: END EDW_ALL_COLLECT;