485: END IF;
486:
487: IF (x_table_name IS NOT NULL AND x_index_name IS NOT NULL AND p_stream_id IN (3,2,4)) THEN
488:
489: msd_dem_common_utilities.log_debug ('Table Name - ' || x_table_name);
490: msd_dem_common_utilities.log_debug ('Index Name - ' || x_index_name);
491:
492: msd_dem_common_utilities.log_debug ('Checking for duplicates - ');
493: x_sql := 'SELECT sum(a) from (select 1 a FROM ' || x_table_name
486:
487: IF (x_table_name IS NOT NULL AND x_index_name IS NOT NULL AND p_stream_id IN (3,2,4)) THEN
488:
489: msd_dem_common_utilities.log_debug ('Table Name - ' || x_table_name);
490: msd_dem_common_utilities.log_debug ('Index Name - ' || x_index_name);
491:
492: msd_dem_common_utilities.log_debug ('Checking for duplicates - ');
493: x_sql := 'SELECT sum(a) from (select 1 a FROM ' || x_table_name
494: || ' GROUP BY LEVEL1_SR_PK, LEVEL2_SR_PK, SDATE '
488:
489: msd_dem_common_utilities.log_debug ('Table Name - ' || x_table_name);
490: msd_dem_common_utilities.log_debug ('Index Name - ' || x_index_name);
491:
492: msd_dem_common_utilities.log_debug ('Checking for duplicates - ');
493: x_sql := 'SELECT sum(a) from (select 1 a FROM ' || x_table_name
494: || ' GROUP BY LEVEL1_SR_PK, LEVEL2_SR_PK, SDATE '
495: || ' HAVING count(1) > 1)';
496: msd_dem_common_utilities.log_debug (x_sql);
492: msd_dem_common_utilities.log_debug ('Checking for duplicates - ');
493: x_sql := 'SELECT sum(a) from (select 1 a FROM ' || x_table_name
494: || ' GROUP BY LEVEL1_SR_PK, LEVEL2_SR_PK, SDATE '
495: || ' HAVING count(1) > 1)';
496: msd_dem_common_utilities.log_debug (x_sql);
497: EXECUTE IMMEDIATE x_sql INTO x_is_present;
498:
499: IF (x_is_present > 0) THEN
500: --msd_dem_common_utilities.log_message('Duplicates found in table ' || x_table_name);
496: msd_dem_common_utilities.log_debug (x_sql);
497: EXECUTE IMMEDIATE x_sql INTO x_is_present;
498:
499: IF (x_is_present > 0) THEN
500: --msd_dem_common_utilities.log_message('Duplicates found in table ' || x_table_name);
501: --msd_dem_common_utilities.log_message('Deleting duplicates ... ');
502:
503: x_sql := 'DELETE FROM ' || x_table_name
504: || ' WHERE rowid NOT IN (SELECT max(rowid) FROM ' || x_table_name
497: EXECUTE IMMEDIATE x_sql INTO x_is_present;
498:
499: IF (x_is_present > 0) THEN
500: --msd_dem_common_utilities.log_message('Duplicates found in table ' || x_table_name);
501: --msd_dem_common_utilities.log_message('Deleting duplicates ... ');
502:
503: x_sql := 'DELETE FROM ' || x_table_name
504: || ' WHERE rowid NOT IN (SELECT max(rowid) FROM ' || x_table_name
505: || ' GROUP BY LEVEL1_SR_PK, LEVEL2_SR_PK, SDATE ) ';
502:
503: x_sql := 'DELETE FROM ' || x_table_name
504: || ' WHERE rowid NOT IN (SELECT max(rowid) FROM ' || x_table_name
505: || ' GROUP BY LEVEL1_SR_PK, LEVEL2_SR_PK, SDATE ) ';
506: msd_dem_common_utilities.log_debug (x_sql);
507: EXECUTE IMMEDIATE x_sql;
508: x_rows_deleted := SQL%ROWCOUNT;
509: msd_dem_common_utilities.log_message ('Duplicate rows deleted - ' || x_rows_deleted);
510:
505: || ' GROUP BY LEVEL1_SR_PK, LEVEL2_SR_PK, SDATE ) ';
506: msd_dem_common_utilities.log_debug (x_sql);
507: EXECUTE IMMEDIATE x_sql;
508: x_rows_deleted := SQL%ROWCOUNT;
509: msd_dem_common_utilities.log_message ('Duplicate rows deleted - ' || x_rows_deleted);
510:
511: END IF;
512:
513: msd_dem_common_utilities.log_message('Adding Index - ' || x_index_name);
509: msd_dem_common_utilities.log_message ('Duplicate rows deleted - ' || x_rows_deleted);
510:
511: END IF;
512:
513: msd_dem_common_utilities.log_message('Adding Index - ' || x_index_name);
514: x_sql := 'CREATE UNIQUE INDEX ' || x_owner || '.' || x_index_name
515: || ' ON ' || x_owner || '.' || x_table_name
516: || '(LEVEL1_SR_PK, LEVEL2_SR_PK, SDATE) ';
517: msd_dem_common_utilities.log_debug (x_sql);
513: msd_dem_common_utilities.log_message('Adding Index - ' || x_index_name);
514: x_sql := 'CREATE UNIQUE INDEX ' || x_owner || '.' || x_index_name
515: || ' ON ' || x_owner || '.' || x_table_name
516: || '(LEVEL1_SR_PK, LEVEL2_SR_PK, SDATE) ';
517: msd_dem_common_utilities.log_debug (x_sql);
518: EXECUTE IMMEDIATE x_sql;
519: msd_dem_common_utilities.log_message('Created Index - ' || x_index_name);
520:
521: msd_dem_common_utilities.log_message('Analyzing Table - ' || x_table_name);
515: || ' ON ' || x_owner || '.' || x_table_name
516: || '(LEVEL1_SR_PK, LEVEL2_SR_PK, SDATE) ';
517: msd_dem_common_utilities.log_debug (x_sql);
518: EXECUTE IMMEDIATE x_sql;
519: msd_dem_common_utilities.log_message('Created Index - ' || x_index_name);
520:
521: msd_dem_common_utilities.log_message('Analyzing Table - ' || x_table_name);
522: fnd_stats.gather_table_stats(x_owner, x_table_name, 10, 4);
523:
517: msd_dem_common_utilities.log_debug (x_sql);
518: EXECUTE IMMEDIATE x_sql;
519: msd_dem_common_utilities.log_message('Created Index - ' || x_index_name);
520:
521: msd_dem_common_utilities.log_message('Analyzing Table - ' || x_table_name);
522: fnd_stats.gather_table_stats(x_owner, x_table_name, 10, 4);
523:
524:
525: END IF;