DBA Data[Home] [Help]

APPS.BSC_UPDATE_BASE SQL Statements

The following lines contain the word 'select', 'insert', 'update' or 'delete':

Line: 46

        SELECT NVL(current_period, 0)
        INTO h_current_period
        FROM bsc_db_tables
        WHERE table_name = x_base_table;
Line: 74

        h_yearly_flag := BSC_UPDATE_UTIL.Get_Periodicity_Yearly_Flag(x_periodicity_base_table);
Line: 75

        h_calendar_id := BSC_UPDATE_UTIL.Get_Calendar_Id(x_periodicity_base_table);
Line: 77

        h_periodicity_type_input_table := BSC_UPDATE_UTIL.Get_Periodicity_Type(x_periodicity_input_table);
Line: 78

        h_periodicity_type_base_table := BSC_UPDATE_UTIL.Get_Periodicity_Type(x_periodicity_base_table);
Line: 90

                SELECT week52
                INTO x_per_base_table
                FROM bsc_db_week_maps
                WHERE year = x_current_fy AND month = x_per_input_table AND
                      week = x_subper_input_table AND calendar_id = h_calendar_id;
Line: 102

            h_edw_flag := BSC_UPDATE_UTIL.Get_Periodicity_EDW_Flag(x_periodicity_base_table);
Line: 108

                h_base_calendar_col_name := BSC_UPDATE_UTIL.Get_Calendar_Table_Col_Name(x_periodicity_base_table);
Line: 112

                    h_sql := 'SELECT '||h_base_calendar_col_name||' '||
                             'FROM bsc_db_calendar '||
                             'WHERE year = :1 '||
                             'AND month = :2 '||
                             'AND day30 = :3 '||
                             'AND calendar_id = :4';
Line: 125

                    h_input_calendar_col_name := BSC_UPDATE_UTIL.Get_Calendar_Table_Col_Name(x_periodicity_input_table);
Line: 126

                    h_sql := 'SELECT MAX('||h_base_calendar_col_name||') '||
                             'FROM bsc_db_calendar '||
                             'WHERE year = :1 '||
                             'AND '||h_input_calendar_col_name||' = :2 '||
                             'AND calendar_id = :3';
Line: 142

                h_sql := 'SELECT MAX(bsc_target) '||
                         'FROM bsc_edw_time_map '||
                         'WHERE year = :1 '||
                         'AND bsc_source = :2';
Line: 170

                      x_source => 'BSC_UPDATE_BASE.Calc_New_Period_Base_Table');
Line: 217

    h_calendar_id := BSC_UPDATE_UTIL.Get_Calendar_Id(x_periodicity);
Line: 218

    h_calendar_source := BSC_UPDATE_UTIL.Get_Calendar_Source(h_calendar_id);
Line: 221

    h_target_flag := BSC_UPDATE_UTIL.Get_Table_Target_Flag(x_input_table);
Line: 225

        SELECT NVL(current_period, 0), NVL(current_subperiod, 0)
        INTO h_current_period, h_current_subperiod
        FROM bsc_db_tables
        WHERE table_name = x_input_table;
Line: 236

    h_yearly_flag := BSC_UPDATE_UTIL.Get_Periodicity_Yearly_Flag(x_periodicity);
Line: 245

            h_sql := 'SELECT MAX('||x_period_col_name||') '||
                     'FROM '||x_input_table||' '||
                     'WHERE year = :1';
Line: 263

            h_periodicity_type := BSC_UPDATE_UTIL.Get_Periodicity_Type(x_periodicity);
Line: 267

                h_sql := 'SELECT MAX(p.period_id)'||
                         ' FROM '||x_input_table||' i, bsc_sys_periods p'||
                         ' WHERE p.periodicity_id = :1 AND TRUNC(i.time_fk) = TRUNC(TO_DATE(p.time_fk, ''MM/DD/YYYY''))'||
                         ' AND p.year =:2';
Line: 273

                h_sql := 'SELECT MAX(p.period_id)'||
                     ' FROM '||x_input_table||' i, bsc_sys_periods p'||
                     ' WHERE p.periodicity_id = :1 AND i.time_fk = p.time_fk AND p.year =:2';
Line: 309

            h_sql := 'SELECT MAX('||x_subperiod_col_name||') '||
                     'FROM '||x_input_table||' '||
                     'WHERE year = :1 '||
                     'AND '||x_period_col_name||' = :2';
Line: 357

                      x_source => 'BSC_UPDATE_BASE.Calc_New_Period_Input_Table');
Line: 402

    h_data_columns  	BSC_UPDATE_UTIL.t_array_of_varchar2;
Line: 403

    h_data_formulas 	BSC_UPDATE_UTIL.t_array_of_varchar2;
Line: 404

    h_data_proj_methods BSC_UPDATE_UTIL.t_array_of_number;
Line: 405

    h_data_measure_types BSC_UPDATE_UTIL.t_array_of_number;
Line: 409

    h_key_columns	BSC_UPDATE_UTIL.t_array_of_varchar2;
Line: 410

    h_key_dim_tables	BSC_UPDATE_UTIL.t_array_of_varchar2;
Line: 411

    h_source_columns	BSC_UPDATE_UTIL.t_array_of_varchar2;
Line: 412

    h_source_dim_tables	BSC_UPDATE_UTIL.t_array_of_varchar2;
Line: 430

        SELECT c.parameter1, p.yearly_flag
        FROM bsc_db_calculations c, bsc_sys_periodicities p
        WHERE c.table_name = p_table_name AND c.calculation_type = p_calc_type AND
              c.parameter1 = p.periodicity_id;
Line: 456

    h_bind_vars_values BSC_UPDATE_UTIL.t_array_of_number;
Line: 475

    h_periodicity_base_table := BSC_UPDATE_UTIL.Get_Table_Periodicity(x_base_table);
Line: 482

    h_periodicity_input_table := BSC_UPDATE_UTIL.Get_Table_Periodicity(x_input_table);
Line: 489

    h_calendar_id := BSC_UPDATE_UTIL.Get_Calendar_Id(h_periodicity_base_table);
Line: 492

    h_current_fy := BSC_UPDATE_UTIL.Get_Calendar_Fiscal_Year(h_calendar_id);
Line: 495

    IF NOT BSC_UPDATE_UTIL.Get_Table_Range_Of_Years(x_base_table, h_num_of_years, h_previous_years) THEN
        RAISE e_unexpected_error;
Line: 500

    IF NOT BSC_UPDATE_UTIL.Get_Period_Cols_Names(h_periodicity_input_table, h_period_col_name, h_subperiod_col_name) THEN
        RAISE e_unexpected_error;
Line: 540

    h_generation_type := BSC_UPDATE_UTIL.Get_Table_Generation_Type(x_base_table);
Line: 546

    IF NOT BSC_UPDATE_UTIL.Get_Information_Data_Columns(x_base_table,
                                                        h_data_columns,
                                                        h_data_formulas,
                                                        h_data_proj_methods,
                                                        h_data_measure_types,
                                                        h_num_data_columns) THEN
        RAISE e_unexpected_error;
Line: 555

    IF NOT BSC_UPDATE_UTIL.Get_Information_Key_Columns(x_base_table,
                                                       h_key_columns,
                                                       h_key_dim_tables,
                                                       h_source_columns,
                                                       h_source_dim_tables,
                                                       h_num_key_columns) THEN
        RAISE e_unexpected_error;
Line: 567

    h_b := BSC_UPDATE_CALC.Table_Has_Proj_Calc(x_base_table);
Line: 592

            h_current_period := BSC_UPDATE_UTIL.Get_Period_Other_Periodicity(
                                       h_other_periodicity_id,
                                       h_calendar_id,
                                       h_yearly_flag,
                                       h_current_fy,
                                       h_periodicity_base_table,
                                       h_current_per_base_table
                                );
Line: 607

            h_current_period := BSC_UPDATE_UTIL.Get_Period_Other_Periodicity(
                                       h_other_periodicity_id,
                                       h_calendar_id,
                                       h_yearly_flag,
                                       h_current_fy,
                                       h_periodicity_base_table,
                                       h_per_base_table
                                );
Line: 627

    SELECT project_flag INTO h_project_flag
    FROM bsc_db_tables
    WHERE table_name = x_base_table;
Line: 634

        IF NOT BSC_UPDATE_CALC.Delete_Projection_Base_Table(x_base_table,
                                                 h_periodicity_base_table,
                                                 h_current_per_base_table,
                                                 h_per_base_table,
                                                 h_data_columns,
                                                 h_data_proj_methods,
                                                 h_num_data_columns,
                                                 h_current_fy,
                                                 x_aw_flag,
                                                 h_change_vector_value) THEN
            RAISE e_unexpected_error;
Line: 654

                IF NOT BSC_UPDATE_CALC.Delete_Projection_Base_Table(x_base_table,
                                                         h_arr_other_periodicities(h_i).periodicity_id,
                                                         h_arr_other_periodicities(h_i).current_period,
                                                         h_arr_other_periodicities(h_i).new_current_period,
                                                         h_data_columns,
                                                         h_data_proj_methods,
                                                         h_num_data_columns,
                                                         h_current_fy,
                                                         x_aw_flag,
                                                         h_change_vector_value) THEN
                    RAISE e_unexpected_error;
Line: 676

        h_yearly_flag := BSC_UPDATE_UTIL.Get_Periodicity_Yearly_Flag(h_periodicity_base_table);
Line: 679

            h_bind_vars_values.delete;
Line: 681

            h_sql := 'UPDATE '||x_base_table||
                     ' SET projection = ''N'', change_vector = :1'||
                     ' WHERE YEAR = :2 AND PERIOD > :3 AND PERIOD <= :4 AND TYPE <> :5';
Line: 690

            BSC_UPDATE_UTIL.Execute_Immediate(h_sql, h_bind_vars_values, h_num_bind_vars);
Line: 700

    IF NOT Update_Base_Table(x_base_table,
                             x_input_table,
                             h_key_columns,
                             h_key_dim_tables,
                             h_num_key_columns,
                             h_data_columns,
                             h_data_formulas,
                             h_data_measure_types,
                             h_num_data_columns,
                             h_periodicity_base_table,
                             h_periodicity_input_table,
                             h_period_col_name,
                             h_subperiod_col_name,
                             h_projection_flag,
                             h_current_fy,
                             h_per_base_table,
                             h_current_per_base_table,
                             x_correction_flag,
                             x_aw_flag,
                             h_change_vector_value
                             ) THEN
        RAISE e_unexpected_error;
Line: 737

        IF NOT BSC_UPDATE_CALC.Create_Proj_Temps(h_periodicity_base_table,
						 h_current_fy,
						 h_num_of_years,
						 h_previous_years,
                                                 TRUE) THEN
            RAISE e_unexpected_error;
Line: 746

        IF NOT BSC_UPDATE_CALC.Calculate_Projection(x_base_table,
						    h_periodicity_base_table,
 						    h_per_base_table,
						    h_key_columns,
						    h_num_key_columns,
						    h_data_columns,
						    h_data_proj_methods,
						    h_num_data_columns,
						    h_current_fy,
						    h_num_of_years,
						    h_previous_years,
						    TRUE,
                                                    x_aw_flag,
                                                    h_change_vector_value) THEN
            RAISE e_unexpected_error;
Line: 766

            h_sql := 'UPDATE '||x_base_table||' SET change_vector = :1';
Line: 783

                IF NOT BSC_UPDATE_CALC.Create_Proj_Temps(h_arr_other_periodicities(h_i).periodicity_id,
      					                 h_current_fy,
						         h_num_of_years,
						         h_previous_years,
                                                         FALSE) THEN
                    RAISE e_unexpected_error;
Line: 795

                    IF NOT BSC_UPDATE_CALC.Calculate_Projection(
                              x_base_table,
     	                      h_arr_other_periodicities(h_i).periodicity_id,
 			      h_arr_other_periodicities(h_i).new_current_period,
			      h_key_columns,
			      h_num_key_columns,
			      h_data_columns,
			      h_data_proj_methods,
			      h_num_data_columns,
			      h_current_fy,
			      h_num_of_years,
			      h_previous_years,
			      TRUE,
                              x_aw_flag,
                              NULL) THEN
                        RAISE e_unexpected_error;
Line: 817

                    IF NOT BSC_UPDATE_CALC.Rollup_Projection(
     	                      h_arr_other_periodicities(h_i).periodicity_id,
 			      h_arr_other_periodicities(h_i).new_current_period,
                              h_periodicity_base_table,
                              h_per_base_table,
			      h_key_columns,
			      h_num_key_columns,
			      h_data_columns,
                              h_data_formulas,
                              h_data_measure_types,
			      h_num_data_columns,
			      h_current_fy,
                              TRUE) THEN
                        RAISE e_unexpected_error;
Line: 838

            IF NOT BSC_UPDATE_CALC.Merge_Projection(x_base_table,
                                    h_key_columns,
                                    h_num_key_columns,
                                    h_data_columns,
                                    h_num_data_columns,
                                    TRUE,
                                    x_aw_flag) THEN
                RAISE e_unexpected_error;
Line: 849

            BSC_UPDATE_UTIL.Truncate_Table('BSC_TMP_PROJ_CALC');
Line: 858

        h_b := BSC_UPDATE_CALC.Table_Has_Profit_Calc(x_base_table);
Line: 865

            IF NOT BSC_UPDATE_CALC.Calculate_Profit(x_base_table,
                                                    h_key_columns,
                                                    h_key_dim_tables,
                                                    h_num_key_columns,
                                                    h_data_columns,
                                                    h_num_data_columns,
                                                    x_aw_flag,
                                                    h_change_vector_value
                                                    ) THEN
                RAISE e_unexpected_error;
Line: 887

        bsc_aw_load.update_bt_change_vector(x_base_table, h_change_vector_value);
Line: 892

        UPDATE
            bsc_db_tables
        SET
            current_period = h_per_input_table,
            current_subperiod = h_subper_input_table
        WHERE
            table_name = x_input_table;
Line: 900

        UPDATE
            bsc_db_tables
        SET
            current_period = h_per_base_table
        WHERE
            table_name = x_base_table;
Line: 910

        BSC_UPDATE_UTIL.Truncate_Table(x_input_table);
Line: 917

        BSC_AW_LOAD.update_bt_current_period(x_base_table, h_per_base_table, h_current_fy);
Line: 922

    BSC_UPDATE_UTIL.Truncate_Table('BSC_TMP_BASE');
Line: 930

      BSC_MESSAGE.Add(x_message => BSC_UPDATE_UTIL.Get_Message('BSC_BTABLE_CALCULATION_FAILED'),
                      x_source => 'BSC_UPDATE_BASE.Calculate_Base_Table');
Line: 937

                      x_source => 'BSC_UPDATE_BASE.Calculate_Base_Table');
Line: 975

    h_table_columns BSC_UPDATE_UTIL.t_array_temp_table_cols;
Line: 991

    h_table_columns.delete;
Line: 1048

    IF NOT BSC_UPDATE_UTIL.Create_Global_Temp_Table(h_table_name, h_table_columns, h_num_columns) THEN
        RAISE e_unexpected_error;
Line: 1061

        IF NOT BSC_UPDATE_UTIL.Create_Global_Temp_Table(h_table_name, h_table_columns, h_num_columns) THEN
            RAISE e_unexpected_error;
Line: 1070

        IF NOT BSC_UPDATE_UTIL.Create_Global_Temp_Table(h_table_name, h_table_columns, h_num_columns) THEN
            RAISE e_unexpected_error;
Line: 1079

    IF NOT BSC_UPDATE_UTIL.Create_Global_Temp_Table(h_table_name, h_table_columns, h_num_columns) THEN
        RAISE e_unexpected_error;
Line: 1087

    IF NOT BSC_UPDATE_UTIL.Create_Global_Temp_Table(h_table_name, h_table_columns, h_num_columns) THEN
        RAISE e_unexpected_error;
Line: 1094

    IF NOT BSC_UPDATE_UTIL.Create_Global_Temp_Table(h_table_name, h_table_columns, h_num_columns) THEN
        RAISE e_unexpected_error;
Line: 1101

    IF NOT BSC_UPDATE_UTIL.Create_Global_Temp_Table(h_table_name, h_table_columns, h_num_columns) THEN
        RAISE e_unexpected_error;
Line: 1108

    h_table_columns.delete;
Line: 1125

    IF NOT BSC_UPDATE_UTIL.Create_Global_Temp_Table(h_table_name, h_table_columns, h_num_columns) THEN
        RAISE e_unexpected_error;
Line: 1132

    IF NOT BSC_UPDATE_UTIL.Create_Global_Temp_Table(h_table_name, h_table_columns, h_num_columns) THEN
        RAISE e_unexpected_error;
Line: 1138

    h_table_columns.delete;
Line: 1145

    IF NOT BSC_UPDATE_UTIL.Create_Global_Temp_Table(h_table_name, h_table_columns, h_num_columns) THEN
        RAISE e_unexpected_error;
Line: 1152

    h_table_columns.delete;
Line: 1188

    IF NOT BSC_UPDATE_UTIL.Create_Global_Temp_Table(h_table_name, h_table_columns, h_num_columns) THEN
        RAISE e_unexpected_error;
Line: 1195

    h_table_columns.delete;
Line: 1216

    IF NOT BSC_UPDATE_UTIL.Create_Global_Temp_Table(h_table_name, h_table_columns, h_num_columns) THEN
        RAISE e_unexpected_error;
Line: 1223

    h_table_columns.delete;
Line: 1244

    IF NOT BSC_UPDATE_UTIL.Create_Global_Temp_Table(h_table_name, h_table_columns, h_num_columns) THEN
        RAISE e_unexpected_error;
Line: 1251

    h_table_columns.delete;
Line: 1282

    IF NOT BSC_UPDATE_UTIL.Create_Global_Temp_Table(h_table_name, h_table_columns, h_num_columns) THEN
        RAISE e_unexpected_error;
Line: 1288

    h_table_columns.delete;
Line: 1302

    IF NOT BSC_UPDATE_UTIL.Create_Global_Temp_Table(h_table_name, h_table_columns, h_num_columns) THEN
        RAISE e_unexpected_error;
Line: 1309

    h_table_columns.delete;
Line: 1347

    IF NOT BSC_UPDATE_UTIL.Create_Global_Temp_Table(h_table_name, h_table_columns, h_num_columns) THEN
        RAISE e_unexpected_error;
Line: 1353

    h_table_columns.delete;
Line: 1367

    IF NOT BSC_UPDATE_UTIL.Create_Global_Temp_Table(h_table_name, h_table_columns, h_num_columns) THEN
        RAISE e_unexpected_error;
Line: 1374

    h_table_columns.delete;
Line: 1398

    IF NOT BSC_UPDATE_UTIL.Create_Global_Temp_Table(h_table_name, h_table_columns, h_num_columns) THEN
        RAISE e_unexpected_error;
Line: 1404

    h_table_name := 'BSC_TMP_BASE_UPDATE';
Line: 1405

    h_table_columns.delete;
Line: 1430

    IF NOT BSC_UPDATE_UTIL.Create_Global_Temp_Table(h_table_name, h_table_columns, h_num_columns) THEN
        RAISE e_unexpected_error;
Line: 1437

    h_table_columns.delete;
Line: 1449

    IF NOT BSC_UPDATE_UTIL.Create_Global_Temp_Table(h_table_name, h_table_columns, h_num_columns) THEN
        RAISE e_unexpected_error;
Line: 1457

      BSC_MESSAGE.Add(x_message => BSC_UPDATE_UTIL.Get_Message('BSC_UNEXPECTED_ERROR'),
                      x_source => 'BSC_UPDATE_BASE.Create_Generic_Temp_Tables');
Line: 1463

                      x_source => 'BSC_UPDATE_BASE.Create_Generic_Temp_Tables');
Line: 1490

   p_periodicity        OUT NOCOPY BSC_UPDATE_UTIL.t_array_of_number,
   p_calendar_id        OUT NOCOPY BSC_UPDATE_UTIL.t_array_of_number,
   p_column_name        OUT NOCOPY BSC_UPDATE_UTIL.t_array_of_varchar2,
   p_number_periodicity OUT NOCOPY NUMBER
) RETURN BOOLEAN IS

  CURSOR c_Calc_Period IS
  SELECT TO_NUMBER(C.PARAMETER1) Parameter1, P.CALENDAR_ID Calendar_Id, P.DB_COLUMN_NAME Db_Column_Name
  FROM   BSC_DB_CALCULATIONS C, BSC_SYS_PERIODICITIES P
  WHERE  C.Parameter1       = P.Periodicity_Id
  AND    C.Calculation_Type = 6
  AND    C.Table_Name       = p_table_name;
Line: 1523

                      x_source  => 'BSC_UPDATE_BASE.get_base_higher_periodicities');
Line: 1530

| FUNCTION Update_Base_Table						     |
+============================================================================*/
FUNCTION Update_Base_Table(
	x_base_tbl		VARCHAR2,
	x_in_tbl		VARCHAR2,
	x_key_columns 		BSC_UPDATE_UTIL.t_array_of_varchar2,
	x_key_dim_tables	BSC_UPDATE_UTIL.t_array_of_varchar2,
        x_num_key_columns 	NUMBER,
        x_data_columns 	        BSC_UPDATE_UTIL.t_array_of_varchar2,
	x_data_formulas		BSC_UPDATE_UTIL.t_array_of_varchar2,
        x_data_measure_types    BSC_UPDATE_UTIL.t_array_of_number,
        x_num_data_columns 	NUMBER,
	x_base_percode		NUMBER,
	x_in_percode		NUMBER,
	x_in_per_fld		VARCHAR2,
	x_in_subper_fld		VARCHAR2,
	x_projection_flag	VARCHAR2,
        x_current_fy            NUMBER,
        x_current_per_base_table NUMBER,
        x_prev_current_period NUMBER,  --Fix bug#4235448 Need this parameter
        x_correction_flag       BOOLEAN,
        x_aw_flag               BOOLEAN,
        x_change_vector_value   NUMBER
    ) RETURN BOOLEAN IS
	e_unexpected_error 	EXCEPTION;
Line: 1562

	h_lst_select		VARCHAR2(32700);
Line: 1581

        h_key_columns_temp  BSC_UPDATE_UTIL.t_array_of_varchar2;
Line: 1582

        h_data_columns_temp BSC_UPDATE_UTIL.t_array_of_varchar2;
Line: 1585

        l_bind_vars_values BSC_UPDATE_UTIL.t_array_of_number;
Line: 1593

        l_periodicity BSC_UPDATE_UTIL.t_array_of_number;
Line: 1594

        l_calendar_id BSC_UPDATE_UTIL.t_array_of_number;
Line: 1595

        l_column_name BSC_UPDATE_UTIL.t_array_of_varchar2;
Line: 1598

        l_bf_columns BSC_UPDATE_UTIL.t_array_of_varchar2;
Line: 1599

        l_bf_column_formulas BSC_UPDATE_UTIL.t_array_of_varchar2;
Line: 1616

        h_dbi_dim_data BSC_UPDATE_DIM.t_dbi_dim_data;
Line: 1642

	h_lst_select := NULL;
Line: 1659

    BSC_UPDATE_UTIL.Truncate_Table('BSC_TMP_BASE');
Line: 1664

    BSC_UPDATE_UTIL.Truncate_Table('BSC_TMP_BASE_ROWID');
Line: 1672

        BSC_UPDATE_UTIL.Truncate_Table('BSC_TMP_BASE_BU');
Line: 1686

    h_base_calendar_col_name := BSC_UPDATE_UTIL.Get_Calendar_Table_Col_Name(x_base_percode);
Line: 1687

    h_calendar_id := BSC_UPDATE_UTIL.Get_Calendar_Id(x_base_percode);
Line: 1688

    h_calendar_source := BSC_UPDATE_UTIL.Get_Calendar_Source(h_calendar_id);
Line: 1689

    h_yearly_flag := BSC_UPDATE_UTIL.Get_Periodicity_Yearly_Flag(x_base_percode);
Line: 1692

    h_lst_key_columns := BSC_UPDATE_UTIL.Make_Lst_From_Array_Varchar2(x_key_columns, x_num_key_columns);
Line: 1693

    h_lst_key_columns_temp := BSC_UPDATE_UTIL.Make_Lst_Fixed_Column('KEY', x_num_key_columns);
Line: 1700

    h_lst_data_columns := BSC_UPDATE_UTIL.Make_Lst_From_Array_Varchar2(x_data_columns, x_num_data_columns);
Line: 1701

    h_lst_data_columns_temp := BSC_UPDATE_UTIL.Make_Lst_Fixed_Column('DATA', x_num_data_columns);
Line: 1702

    h_lst_data_formulas := BSC_UPDATE_UTIL.Make_Lst_From_Array_Varchar2(x_data_formulas, x_num_data_columns);
Line: 1740

    h_lst_select := NULL;
Line: 1753

            SELECT short_name, source
            INTO h_level_short_name, h_level_source
            FROM bsc_sys_dim_levels_b
            WHERE level_view_name = h_level_table_name;
Line: 1759

                BSC_UPDATE_DIM.Get_Dbi_Dim_Data(h_level_short_name, h_dbi_dim_data);
Line: 1770

        h_lst_select := h_lst_select||h_level_table_name||'.CODE, ';
Line: 1820

            h_lst_select := h_lst_select||x_in_tbl||'.YEAR, '||x_in_tbl||'.TYPE, '||x_in_tbl||'.'||x_in_per_fld;
Line: 1826

                h_lst_select := h_lst_select||'BSC_SYS_PERIODS.YEAR, '||x_in_tbl||'.TYPE, 0';
Line: 1828

                h_lst_select := h_lst_select||'BSC_SYS_PERIODS.YEAR, '||x_in_tbl||'.TYPE, BSC_SYS_PERIODS.PERIOD_ID';
Line: 1838

            h_periodicity_type_base_table := BSC_UPDATE_UTIL.Get_Periodicity_Type(x_base_percode);
Line: 1866

        h_periodicity_type_input_table := BSC_UPDATE_UTIL.Get_Periodicity_Type(x_in_percode);
Line: 1867

        h_periodicity_type_base_table := BSC_UPDATE_UTIL.Get_Periodicity_Type(x_base_percode);
Line: 1871

            h_lst_select := h_lst_select||x_in_tbl||'.YEAR, '||x_in_tbl||'.TYPE, 0';
Line: 1880

            h_lst_select := h_lst_select||x_in_tbl||'.YEAR, '||x_in_tbl||'.TYPE, BSC_DB_WEEK_MAPS.WEEK52';
Line: 1893

            h_edw_flag := BSC_UPDATE_UTIL.Get_Periodicity_EDW_Flag(x_base_percode);
Line: 1904

                    h_lst_select := h_lst_select||x_in_tbl||'.YEAR, '||
                                    x_in_tbl||'.TYPE, BSC_DB_CALENDAR.'||h_base_calendar_col_name;
Line: 1917

                    h_input_calendar_col_name := BSC_UPDATE_UTIL.Get_Calendar_Table_Col_Name(x_in_percode);
Line: 1918

                    h_lst_select := h_lst_select||x_in_tbl||'.YEAR, '||
                                    x_in_tbl||'.TYPE, BSC_DB_CALENDAR.'||h_base_calendar_col_name;
Line: 1937

                h_lst_select := h_lst_select||x_in_tbl||'.YEAR, '||
                                    x_in_tbl||'.TYPE, BSC_EDW_TIME_MAP.BSC_TARGET';
Line: 1953

    h_sql := 'INSERT /*+ append';
Line: 1954

    if BSC_UPDATE_UTIL.is_parallel then
      h_sql:=h_sql||' parallel (bsc_tmp_base)';
Line: 1963

             ' SELECT ';
Line: 1964

    if BSC_UPDATE_UTIL.is_parallel then
      h_sql:=h_sql||'/*+ '||l_parallel_hint||' */ ';
Line: 1967

    h_sql:=h_sql||h_lst_select||', ';
Line: 1976

    h_sql := h_sql||' GROUP BY '||h_lst_select;
Line: 1981

        sum(m1) to avg(m1). in this case, the higher periodicities in the base table are first deleted,
        and then data from the base table is moved to the tmp table. so the step of pulling data from
        the imput table is skipped.
        */
        --delete data from the base table for higher periodicities
        --Bug#3875046: We are not going to remove higher periodcities from the base table
        --l_stmt:='delete '||x_base_tbl||' where periodicity_id <> :1';
Line: 1988

        l_bind_vars_values.delete;
Line: 1993

        h_sql := 'INSERT /*+ append';
Line: 1994

        if BSC_UPDATE_UTIL.is_parallel then
            h_sql:=h_sql||' parallel (bsc_tmp_base)';
Line: 1999

        h_sql := h_sql||h_lst_data_columns_temp||') SELECT ';
Line: 2000

        if BSC_UPDATE_UTIL.is_parallel then
            h_sql := h_sql||' /*+ parallel('||x_base_tbl||')*/ ';
Line: 2008

        h_row_count := BSC_UPDATE_UTIL.Execute_Immediate(h_sql,l_bind_vars_values,1);
Line: 2014

        input table. We jsut need to insert all the rows from the base table to the BSC_TMP_BASE table.
        AW_INTEGRATION: If the base table is for AW then there are not higher periodicities.
        It is the same structure as summary tables architecture
        */
        h_sql := 'INSERT /*+ append';
Line: 2019

        if BSC_UPDATE_UTIL.is_parallel then
            h_sql:=h_sql||' parallel (bsc_tmp_base)';
Line: 2024

        h_sql := h_sql||h_lst_data_columns_temp||') SELECT ';
Line: 2025

        if BSC_UPDATE_UTIL.is_parallel then
            h_sql := h_sql||' /*+ parallel('||x_base_tbl||')*/ ';
Line: 2031

        h_row_count := BSC_UPDATE_UTIL.Execute_Immediate(h_sql);
Line: 2035

        l_bind_vars_values.delete;
Line: 2048

            h_row_count := BSC_UPDATE_UTIL.Execute_Immediate(h_sql,l_bind_vars_values,l_num_bind_vars);
Line: 2052

            h_row_count := BSC_UPDATE_UTIL.Execute_Immediate(h_sql);
Line: 2063

        h_lst_join := BSC_UPDATE_UTIL.Make_Lst_Cond_Join(x_base_tbl,
                                                         x_key_columns,
                                                         'BSC_TMP_BASE',
	  	      	                                 h_key_columns_temp,
							 x_num_key_columns,
						         'AND');
Line: 2101

          l_stmt:='insert /*+ append';
Line: 2102

          if BSC_UPDATE_UTIL.is_parallel then
            l_stmt:=l_stmt||' parallel (bsc_tmp_base_bu)';
Line: 2108

                   ' SELECT ';
Line: 2109

          if BSC_UPDATE_UTIL.is_parallel then
            l_stmt:=l_stmt||'/*+ parallel (bsc_tmp_base) parallel ('||x_base_tbl||') */ ';
Line: 2130

          BSC_UPDATE_UTIL.Execute_Immediate(l_stmt);
Line: 2140

    BSC_UPDATE_UTIL.Truncate_Table('BSC_TMP_BASE_UPDATE');
Line: 2142

    l_bind_vars_values.delete;
Line: 2143

    h_sql := 'INSERT /*+ append ';
Line: 2144

    IF BSC_UPDATE_UTIL.is_parallel THEN
        h_sql := h_sql||'parallel (bsc_tmp_base_update) ';
Line: 2148

             ' INTO bsc_tmp_base_update (row_id, '||h_lst_data_columns_temp||')'||
             ' SELECT '||x_base_tbl||'.rowid, '||h_lst_data_columns_temp_p||
             ' FROM '||x_base_tbl||', bsc_tmp_base'||
             ' WHERE '||h_lst_join;
Line: 2155

      BSC_UPDATE_UTIL.Execute_Immediate(h_sql);
Line: 2159

    h_sql := 'UPDATE /*+ordered use_nl(B)*/ '||x_base_tbl||' B'||
             ' SET ('||h_lst_data_columns||')=('||
             ' SELECT '||h_lst_data_columns_temp||
             ' FROM bsc_tmp_base_update P'||
             ' WHERE P.row_id = B.rowid)'||
             ' WHERE B.rowid IN (SELECT row_id FROM bsc_tmp_base_update)';
Line: 2168

      BSC_UPDATE_UTIL.Execute_Immediate(h_sql);
Line: 2173

    h_lst_select := NULL;
Line: 2178

        h_lst_select := BSC_UPDATE_UTIL.Make_Lst_Table_Column('BSC_TMP_BASE',
                                                              h_key_columns_temp,
                                                              x_num_key_columns);
Line: 2181

        h_lst_select := h_lst_select||', ';
Line: 2183

        h_lst_join := BSC_UPDATE_UTIL.Make_Lst_Cond_Left_Join('BSC_TMP_BASE',
                                                              h_key_columns_temp,
                                                              x_base_tbl,
	  	      	                                      x_key_columns,
							      x_num_key_columns,
						              'AND');
Line: 2191

        h_lst_cond_null := BSC_UPDATE_UTIL.Make_Lst_Cond_Null(x_base_tbl,
                                                              x_key_columns,
                                                              x_num_key_columns,
                                                              'OR');
Line: 2202

        h_lst_select := h_lst_select||'BSC_TMP_BASE.PERIODICITY_ID,';
Line: 2204

    h_lst_select := h_lst_select||'BSC_TMP_BASE.YEAR, BSC_TMP_BASE.TYPE, BSC_TMP_BASE.PERIOD, '||
                    h_lst_data_columns_temp_p;
Line: 2226

    before we insert into the base table, we need to see if we can use append hint.
    the logic is as follows.
    for I->B
    if the base table has data, then this is inc and do not use append if there is
    snapshot log on the base table.
    for Projections
    if the base table has a snapshot log on it and the snashot log has at-least
    one row of data in it, then this insert is incremental and we cannot use
    append hint. append hint will not write into the snapshot log
    */
    declare
      ll_use_append boolean;
Line: 2251

        h_sql := 'INSERT /*+append';
Line: 2252

        if BSC_UPDATE_UTIL.is_parallel then
          h_sql:=h_sql||' parallel ('||x_base_tbl||')';
Line: 2256

        h_sql := 'INSERT /*+';
Line: 2265

             ' SELECT ';
Line: 2266

    if BSC_UPDATE_UTIL.is_parallel then
      h_sql:=h_sql||'/*+ parallel ('||x_base_tbl||') parallel (bsc_tmp_base) */ ';
Line: 2269

    h_sql:=h_sql||h_lst_select||
           ' FROM '||x_base_tbl||', BSC_TMP_BASE'||
           ' WHERE '||h_lst_join||' AND ('||h_lst_cond_null||')';
Line: 2276

      BSC_UPDATE_UTIL.Execute_Immediate(h_sql);
Line: 2285

    BSC_UPDATE_UTIL.Truncate_Table('BSC_TMP_BASE_UPDATE');
Line: 2315

        h_lst_select := NULL;
Line: 2319

          h_lst_select := BSC_UPDATE_UTIL.Make_Lst_Table_Column(x_base_tbl, x_key_columns, x_num_key_columns);
Line: 2320

          h_lst_select := h_lst_select||', ';
Line: 2321

          h_lst_join := BSC_UPDATE_UTIL.Make_Lst_Cond_Left_Join(x_base_tbl,
                                                                x_key_columns,
                                                                l_table,
	  	      	                                        h_key_columns_temp,
							        x_num_key_columns,
						                'AND');
Line: 2336

        h_lst_select := h_lst_select||x_base_tbl||'.PERIODICITY_ID, '||
                        x_base_tbl||'.YEAR, '||x_base_tbl||'.TYPE, '||x_base_tbl||'.PERIOD';
Line: 2340

            h_lst_select := h_lst_select||', 0';
Line: 2342

            h_lst_select := h_lst_select||', '||x_base_tbl||'.'||x_data_columns(i);
Line: 2356

        l_stmt := 'INSERT /*+append';
Line: 2357

        IF BSC_UPDATE_UTIL.is_parallel THEN
          l_stmt := l_stmt||' parallel ('||l_table||')';
Line: 2361

                  h_lst_data_columns_temp||') SELECT ';
Line: 2362

        IF BSC_UPDATE_UTIL.is_parallel THEN
          l_stmt := l_stmt||'/*+ parallel ('||x_base_tbl||') parallel ('||l_table||') */';
Line: 2365

        l_stmt := l_stmt||h_lst_select||
                  ' FROM '||x_base_tbl||', '||l_table||
                  ' WHERE '||h_lst_join||' AND '||
                  x_base_tbl||'.PERIODICITY_ID = :1 AND '||x_base_tbl||'.YEAR = :2 AND '||
                  x_base_tbl||'.PERIOD >= :3 AND '||x_base_tbl||'.PERIOD <= :4 AND ('||h_lst_cond_null||')';
Line: 2370

        l_bind_vars_values.delete;
Line: 2376

        h_row_count := BSC_UPDATE_UTIL.Execute_Immediate(l_stmt,l_bind_vars_values,4);
Line: 2385

    after the base periodicity data is inserted into the base table, we are going to
    rollup the data to higher periodicities and then perform an update / insert
    */
    if l_number_periodicity>0 then
      FOR h_i IN 1 .. x_num_data_columns LOOP
        --h_data_columns_temp(h_i) := 'DATA'||h_i;
Line: 2403

          l_calendar_sql:='select distinct calendar_id,year,';
Line: 2413

          if BSC_UPDATE_UTIL.Get_Periodicity_Yearly_Flag(l_periodicity(i))<>1 then
            l_stmt := 'select max('||l_column_name(i)||') from bsc_db_calendar'||
                      ' where '||h_base_calendar_col_name||' = :1 and year = :2  and calendar_id = :3';
Line: 2419

            l_stmt := 'select max('||l_column_name(i)||') from bsc_db_calendar'||
                      ' where '||h_base_calendar_col_name||' = :1 and year = :2  and calendar_id = :3';
Line: 2431

            l_stmt:='insert /*+ append';
Line: 2432

            if BSC_UPDATE_UTIL.is_parallel then
              l_stmt:=l_stmt||' parallel ('||l_table||')';
Line: 2438

            ' SELECT ';
Line: 2439

            if BSC_UPDATE_UTIL.is_parallel then
              l_stmt:=l_stmt||'/*+ parallel ('||l_table||') parallel (bsc_db_calendar)*/ ';
Line: 2445

            if BSC_UPDATE_UTIL.Get_Periodicity_Yearly_Flag(l_periodicity(i))=1 then
              l_stmt:=l_stmt||'0,';
Line: 2458

                  if BSC_UPDATE_UTIL.Get_Periodicity_Yearly_Flag(l_periodicity(i))<>1 then
                    l_stmt:=l_stmt||'case when '||l_table||'.YEAR = '||x_current_fy||' and'||
                            ' bsc_db_calendar.'||l_column_name(i)||' >= '||l_prev_current_period||' and'||
                            ' bsc_db_calendar.'||l_column_name(i)||' <= '||l_current_period||
                            ' then null else -999999999999 end case,';
Line: 2479

            l_bind_vars_values.delete;
Line: 2485

            h_row_count := BSC_UPDATE_UTIL.Execute_Immediate(l_stmt,l_bind_vars_values,3);
Line: 2507

        BSC_UPDATE_UTIL.Truncate_Table('BSC_TMP_BASE_UPDATE');
Line: 2512

            l_stmt:='DELETE FROM bsc_tmp_per_change_bal';
Line: 2513

            BSC_UPDATE_UTIL.Execute_Immediate(l_stmt);
Line: 2514

            l_yearly_flag:=BSC_UPDATE_UTIL.Get_Periodicity_Yearly_Flag(l_periodicity(i));
Line: 2518

              l_stmt:='INSERT INTO bsc_tmp_per_change_bal (year, src_per, trg_per)'||
              ' SELECT year, MAX('||h_base_calendar_col_name||') AS src_per, '||
              l_column_name(i)||' AS trg_per'||
              ' FROM bsc_db_calendar where calendar_id=:1';
Line: 2523

              l_bind_vars_values.delete;
Line: 2525

              BSC_UPDATE_UTIL.Execute_Immediate(l_stmt, l_bind_vars_values,1);
Line: 2526

              l_bind_vars_values.delete;
Line: 2531

              l_stmt:='UPDATE bsc_tmp_per_change_bal'||
              ' SET src_per = :1'||
              ' WHERE year = :2'||
              ' AND trg_per = ('||
              ' SELECT '||l_column_name(i)||
              ' FROM bsc_db_calendar '||
              ' WHERE '||h_base_calendar_col_name||' = :3'||
              ' AND year = :4';
Line: 2542

              BSC_UPDATE_UTIL.Execute_Immediate(l_stmt, l_bind_vars_values,5);
Line: 2545

              l_stmt:='INSERT INTO bsc_tmp_per_change_bal (year, src_per, trg_per)'||
              ' SELECT year, MAX('||h_base_calendar_col_name||') AS src_per, 0 AS trg_per'||
              ' FROM bsc_db_calendar ';
Line: 2550

              l_bind_vars_values.delete;
Line: 2552

              BSC_UPDATE_UTIL.Execute_Immediate(l_stmt,l_bind_vars_values,1);
Line: 2553

              l_bind_vars_values.delete;
Line: 2556

              l_stmt:='UPDATE bsc_tmp_per_change_bal'||
              ' SET src_per = :1'||
              ' WHERE year = :2';
Line: 2559

              BSC_UPDATE_UTIL.Execute_Immediate(l_stmt,l_bind_vars_values,2);
Line: 2565

            BSC_UPDATE_UTIL.Truncate_Table('BSC_TMP_BASE_BAL');
Line: 2567

            l_stmt:='insert /*+ append';
Line: 2568

            if BSC_UPDATE_UTIL.is_parallel then
              l_stmt:=l_stmt||' parallel (BSC_TMP_BASE_BAL)';
Line: 2573

            h_lst_data_columns_temp||') SELECT ';
Line: 2576

            if BSC_UPDATE_UTIL.is_parallel then
              l_stmt:=l_stmt||'/*+ parallel (bsc_tmp_base) parallel (bsc_tmp_per_change_bal) */';
Line: 2596

            l_bind_vars_values.delete;
Line: 2600

            BSC_UPDATE_UTIL.Execute_Immediate(l_stmt,l_bind_vars_values,2);
Line: 2606

            l_stmt:='insert into bsc_tmp_base_update (row_id,';
Line: 2614

                    ' select /*+ use_hash(bsc_tmp_base) use_hash(bsc_tmp_base_bal)*/'||
                    ' bsc_tmp_base.rowid,';
Line: 2633

            l_bind_vars_values.delete;
Line: 2636

            BSC_UPDATE_UTIL.Execute_Immediate(l_stmt,l_bind_vars_values,1);
Line: 2643

        l_stmt:='update /*+ordered use_nl(bsc_tmp_base)*/ bsc_tmp_base set(';
Line: 2649

        l_stmt:=substr(l_stmt,1,length(l_stmt)-1)||')=(select ';
Line: 2656

                ' from bsc_tmp_base_update'||
                ' where bsc_tmp_base_update.row_id=bsc_tmp_base.rowid)'||
                ' where rowid in (select row_id from bsc_tmp_base_update)';
Line: 2659

        BSC_UPDATE_UTIL.Execute_Immediate(l_stmt);
Line: 2680

        l_stmt := 'DELETE FROM bsc_tmp_base_update';
Line: 2681

        BSC_UPDATE_UTIL.Execute_Immediate(l_stmt);
Line: 2683

        l_stmt := 'INSERT INTO bsc_tmp_base_update (row_id,';
Line: 2689

                  ' SELECT '||x_base_tbl||'.rowid,';
Line: 2704

        BSC_UPDATE_UTIL.Execute_Immediate(l_stmt);
Line: 2706

        l_stmt := 'UPDATE /*+ORDERED USE_NL('||x_base_tbl||')*/ '||x_base_tbl||
                  ' SET(';
Line: 2711

        l_stmt:=substr(l_stmt,1,length(l_stmt)-1)||')=(SELECT ';
Line: 2713

          l_stmt:=l_stmt||'bsc_tmp_base_update.'||h_data_columns_temp(j)||',';
Line: 2716

                  ' FROM bsc_tmp_base_update'||
                  ' WHERE bsc_tmp_base_update.row_id='||x_base_tbl||'.rowid)'||
                  ' WHERE rowid IN (SELECT row_id FROM bsc_tmp_base_update)';
Line: 2719

        BSC_UPDATE_UTIL.Execute_Immediate(l_stmt);
Line: 2749

          l_stmt := 'DELETE FROM bsc_tmp_base_update';
Line: 2750

          BSC_UPDATE_UTIL.Execute_Immediate(l_stmt);
Line: 2755

          l_stmt := 'INSERT INTO bsc_tmp_base_update (row_id,';
Line: 2763

                    ' SELECT '||x_base_tbl||'.rowid,';
Line: 2785

          BSC_UPDATE_UTIL.Execute_Immediate(l_stmt);
Line: 2787

          l_stmt := 'UPDATE /*+ORDERED USE_NL('||x_base_tbl||')*/ '||x_base_tbl||
                    ' SET(';
Line: 2794

          l_stmt:=substr(l_stmt,1,length(l_stmt)-1)||')=(SELECT ';
Line: 2800

                          ' bsc_tmp_base_update.'||h_data_columns_temp(j)||',';
Line: 2805

                l_stmt:=l_stmt||'decode(bsc_tmp_base_update.'||h_data_columns_temp(j)||',-999999999999,'||
                        x_base_tbl||'.'||x_data_columns(j)||',bsc_tmp_base_update.'||h_data_columns_temp(j)||'),';
Line: 2814

                          ' bsc_tmp_base_update.'||h_data_columns_temp(j)||',';
Line: 2819

                    ' FROM bsc_tmp_base_update'||
                    ' WHERE bsc_tmp_base_update.row_id='||x_base_tbl||'.rowid)'||
                    ' WHERE rowid IN (SELECT row_id FROM bsc_tmp_base_update)';
Line: 2822

          BSC_UPDATE_UTIL.Execute_Immediate(l_stmt);
Line: 2832

      select nvl(num_rows,0)
      into h_num_rows_base
      from all_tables
      where table_name = x_base_tbl and owner= BSC_APPS.BSC_APPS_SCHEMA;
Line: 2848

      l_stmt := 'insert into bsc_tmp_base_rowid(row_id_tmp, row_id_base)'||
                ' select '||l_hint||' bsc_tmp_base.rowid, '||x_base_tbl||'.rowid'||
                ' from bsc_tmp_base, '||x_base_tbl||
                ' where ';
Line: 2859

      BSC_UPDATE_UTIL.Execute_Immediate(l_stmt);
Line: 2862

      l_stmt := 'insert into '||x_base_tbl||' ('||
                h_lst_key_columns||'PERIODICITY_ID,YEAR,TYPE,PERIOD,'||h_lst_data_columns||')'||
                ' select /*+ use_hash(bsc_tmp_base_rowid) use_hash(bsc_tmp_base)*/ '||
                h_lst_key_columns_temp||'PERIODICITY_ID,YEAR,TYPE,PERIOD,';
Line: 2878

      BSC_UPDATE_UTIL.Execute_Immediate(l_stmt);
Line: 2879

      commit;--we can have a commit only after both update and insert, otherwise there is data corruption
Line: 2884

    BSC_UPDATE_UTIL.Truncate_Table('BSC_TMP_BASE_BU');
Line: 2885

    BSC_UPDATE_UTIL.Truncate_Table('BSC_TMP_BASE_UPDATE');
Line: 2886

    BSC_UPDATE_UTIL.Truncate_Table('BSC_TMP_BASE_BAL');
Line: 2887

    BSC_UPDATE_UTIL.Truncate_Table('BSC_TMP_PER_CHANGE_BAL');
Line: 2888

    BSC_UPDATE_UTIL.Truncate_Table('BSC_TMP_BASE_ROWID');
Line: 2895

		X_Message => BSC_UPDATE_UTIL.Get_Message('BSC_BTABLE_UPDATE_FAILED'),
		X_Source => 'BSC_UPDATE_BASE.Update_Base_Table');
Line: 2904

X_Source => 'BSC_UPDATE_BASE.Update_Base_Table');
Line: 2908

		X_Source => 'BSC_UPDATE_BASE.Update_Base_Table');
Line: 2911

END Update_Base_Table;