DBA Data[Home] [Help]

APPS.IGS_AD_IMP_013 SQL Statements

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

Line: 45

       cst_insert  CONSTANT VARCHAR2(20) :=  'INSERT';
Line: 46

       cst_update CONSTANT VARCHAR2(20) :=  'UPDATE';
Line: 48

       cst_partial_update CONSTANT VARCHAR2(20) :=  'PARTIAL UPDATE';
Line: 86

   SELECT pty.*, i.person_id
   FROM   igs_pe_type_int pty,
          igs_ad_interface_all i
   WHERE pty.interface_id = i.interface_id AND
         pty.status = '2' AND
         pty.interface_run_id = cp_interface_run_id AND
	 i.interface_run_id = cp_interface_run_id;
Line: 98

   SELECT rowid,type_instance_id, end_date,emplmnt_category_code
   FROM   igs_pe_typ_instances_all
   WHERE person_id = cp_person_id AND
         UPPER(person_type_code) = UPPER(cp_person_type_code) AND
         TRUNC(start_date) = TRUNC(cp_start_date);
Line: 109

   SELECT person_type_code
   FROM   igs_pe_per_type_map_v
   WHERE  system_type = cp_system_type;
Line: 116

   SELECT 'X'
   FROM   igs_pe_type_int pty
   WHERE  pty.status = '2' AND
          pty.person_type_code = cp_person_type_code AND
          pty.interface_run_id = cp_interface_run_id;
Line: 140

   SELECT user_name
   FROM  fnd_user
   WHERE user_id = cp_user_id;
Line: 149

   SELECT 'Y'
   FROM   igs_pe_typ_instances_all
   WHERE  person_id = cp_person_id AND
          person_type_code = cp_person_type_code AND
        ( NVL(cp_end_date,cp_default_date) BETWEEN start_date AND NVL(end_date,cp_default_date)
          OR  cp_start_date BETWEEN start_date AND NVL(end_date,cp_default_date)
          OR ( cp_start_date < start_date AND
          NVL(end_date,cp_default_date) < NVL(cp_end_date,cp_default_date)));
Line: 162

   SELECT NULL
   FROM igs_pe_typ_instances_all typ,igs_pe_person_types sys
   WHERE typ.person_id = cp_person_id AND
         sys.person_type_code = typ.person_type_code AND
         sys.system_type IN ('FACULTY','STAFF')  AND
	 ( NVL(cp_end_date,cp_default_date) BETWEEN typ.start_date AND  NVL(typ.end_date,cp_default_date)
         OR  cp_start_date BETWEEN typ.start_date AND NVL(typ.end_date,cp_default_date)
         OR ( cp_start_date < typ.start_date AND
         NVL(typ.end_date,cp_default_date) < NVL(cp_end_date,cp_default_date))) AND
         typ.emplmnt_category_code IS  NOT NULL;
Line: 185

                UPDATE igs_pe_type_int
                SET status = '3',
                    error_code = 'E295'
                WHERE interface_person_type_id = p_person_type_rec.interface_person_type_id;
Line: 207

                UPDATE igs_pe_type_int
                SET status = '3',
                    error_code = 'E585'
                WHERE interface_person_type_id = p_person_type_rec.interface_person_type_id;
Line: 230

        igs_pe_typ_instances_pkg.insert_row
                (
                 x_rowid                        => lv_rowid,
                 x_person_id                    => p_person_type_rec.person_id,
                 x_course_cd                    => null,
                 x_type_instance_id             => l_type_instance_id,
                 x_person_type_code             => p_person_type_rec.person_type_code,
                 x_cc_version_number            => null,
                 x_funnel_status                => null,
                 x_admission_appl_number        => null,
                 x_nominated_course_cd          => null,
                 x_ncc_version_number           => null,
                 x_sequence_number              => null,
                 x_start_date                   => p_person_type_rec.start_date,
                 x_end_date                     => p_person_type_rec.end_date,
                 x_create_method                => 'CREATE_IMPORT',
                 x_ended_by                     => l_ended_by,
                 x_end_method                   => l_end_method,
                 x_org_id                       => null,
                 x_emplmnt_category_code        => p_person_type_rec.emplmnt_category_code
                 );
Line: 252

        UPDATE igs_pe_type_int
        SET    status = '1'
        WHERE  interface_person_type_id = p_person_type_rec.interface_person_type_id;
Line: 288

        UPDATE igs_pe_type_int
        SET    status = '3',
               error_code = l_error_code
        WHERE  interface_person_type_id = p_person_type_rec.interface_person_type_id;
Line: 296

   PROCEDURE update_person_type(p_person_type_rec IN per_type_cur%ROWTYPE,
                p_type_instance_id IN igs_pe_typ_instances_all.type_instance_id%TYPE,
   	        p_rowid           IN  ROWID,
                p_end_date        IN igs_pe_typ_instances_all.end_date%TYPE,
                p_emplmnt_category_code IN igs_pe_typ_instances_all.emplmnt_category_code%TYPE,
                p_system_type     IN igs_pe_person_types.system_type%TYPE,
                p_default_date     IN DATE)
   AS

   l_ended_by    fnd_user.user_id%TYPE;
Line: 314

   SELECT user_name
   FROM  fnd_user
   WHERE user_id = cp_user_id;
Line: 323

   SELECT 'Y'
   FROM   igs_pe_typ_instances_all
   WHERE  person_id = cp_person_id AND
          person_type_code = cp_person_type_code AND
          start_date <> cp_start_date AND
        ( NVL(cp_end_date,cp_default_date) BETWEEN start_date AND NVL(end_date,cp_default_date)
          OR  cp_start_date BETWEEN start_date AND NVL(end_date,cp_default_date)
          OR ( cp_start_date < start_date AND
          NVL(end_date,cp_default_date) < NVL(cp_end_date,cp_default_date)));
Line: 337

   SELECT null FROM igs_pe_typ_instances_all typ,igs_pe_person_types sys
   WHERE
         typ.person_id = cp_person_id AND
         sys.person_type_code = typ.person_type_code AND
         sys.system_type in ('FACULTY','STAFF')  AND
         p_rowid <> typ.rowid AND
	 ( NVL(cp_end_date,cp_default_date) BETWEEN typ.start_date AND  NVL(typ.end_date,cp_default_date)
         OR  cp_start_date BETWEEN typ.start_date AND NVL(typ.end_date,cp_default_date)
         OR ( cp_start_date < typ.start_date AND
         NVL(typ.end_date,cp_default_date) < NVL(cp_end_date,cp_default_date))) AND
         typ.emplmnt_category_code IS  NOT NULL;
Line: 363

                UPDATE igs_pe_type_int
                SET status = '3',
                    error_code = 'E295'
                WHERE interface_person_type_id = p_person_type_rec.interface_person_type_id;
Line: 387

                UPDATE igs_pe_type_int
                SET status = '3',
                    error_code = 'E585'
                WHERE interface_person_type_id = p_person_type_rec.interface_person_type_id;
Line: 408

        igs_pe_typ_instances_pkg.update_row
                (
                 x_rowid                        => p_rowid,
                 x_person_id                    => p_person_type_rec.person_id,
                 x_course_cd                    => null,
                 x_type_instance_id             => p_type_instance_id,
                 x_person_type_code             => p_person_type_rec.person_type_code,
                 x_cc_version_number            => null,
                 x_funnel_status                => null,
                 x_admission_appl_number        => null,
                 x_nominated_course_cd          => null,
                 x_ncc_version_number           => null,
                 x_sequence_number              => null,
                 x_start_date                   => p_person_type_rec.start_date,
                 x_end_date                     => nvl(p_person_type_rec.end_date,p_end_date),
                 x_create_method                => 'CREATE_IMPORT',
                 x_ended_by                     => l_ended_by,
                 x_end_method                   => l_end_method,
                 x_emplmnt_category_code        => nvl(p_person_type_rec.emplmnt_category_code,p_emplmnt_category_code)
                 );
Line: 431

        UPDATE igs_pe_type_int
        SET    status = '1',
               match_ind = '18'
        WHERE  interface_person_type_id = p_person_type_rec.interface_person_type_id;
Line: 449

               l_label := 'igs.plsql.igs_ad_imp_013.update_person_type.exception1';
Line: 468

        UPDATE igs_pe_type_int
        SET    status = '3',
               error_code = l_error_code
        WHERE  interface_person_type_id = p_person_type_rec.interface_person_type_id;
Line: 473

   END update_person_type;
Line: 485

     SELECT system_type
     FROM   igs_pe_person_types
     WHERE  person_type_code = cp_person_type_code
     AND    closed_ind = 'N';
Line: 492

     SELECT birth_date
     FROM   igs_pe_person_base_v
     WHERE  person_id = cp_person_id;
Line: 499

     SELECT NULL FROM IGS_LOOKUP_VALUES
     WHERE lookup_type = l_lookup_type AND
           lookup_code = l_lookup_code AND
           enabled_flag = l_enabled_flag;
Line: 610

                               UPDATE igs_pe_type_int pti
                               SET pti.status = '3',
                                    pti.error_code = 'E293'
                               WHERE person_type_code = l_staff_person_type_code AND
                                    status = '2' AND
                                    pti.interface_run_id = l_interface_run_id;
Line: 637

			UPDATE igs_pe_type_int pti
			SET pti.status = '3',
			    pti.error_code = 'E293'
			WHERE person_type_code = l_faculty_person_type_code AND
			      status = '2' AND
			      interface_run_id = l_interface_run_id;
Line: 663

        UPDATE igs_pe_type_int pti
        SET status     = '3',
            error_code = 'E695'
        WHERE pti.status           = '2' AND
              pti.interface_run_id = l_interface_run_id AND
              pti.match_ind        IS NOT NULL;
Line: 674

            UPDATE igs_pe_type_int pti
            SET    status    = '1',
                   match_ind = '19'
            WHERE  pti.status           = '2' AND
                   pti.interface_run_id = l_interface_run_id AND
                   pti.match_ind        IS NULL AND
                   EXISTS (SELECT 1
			    FROM igs_pe_typ_instances_all pi,
				 igs_ad_interface_all ai
	                    WHERE pti.interface_id    = ai.interface_id AND
			          ai.interface_run_id = l_interface_run_id AND
				  ai.person_id        = pi.person_id AND
	                          UPPER(pti.person_type_code) = UPPER(pi.person_type_code) AND
		                  TRUNC(pti.start_date)  = TRUNC(pi.start_date));
Line: 693

      UPDATE igs_pe_type_int pti
      SET status = '1'
      WHERE pti.status           = '2' AND
	   pti.interface_run_id = l_interface_run_id AND
	   pti.match_ind        IN ('18','19','22','23');
Line: 704

      UPDATE igs_pe_type_int pti
      SET    status = '3',
	     error_code = 'E695'
      WHERE  pti.status = '2' AND
	     pti.interface_run_id = l_interface_run_id AND
	     (pti.match_ind IS NOT NULL AND pti.match_ind NOT IN ('21','25'));
Line: 716

      UPDATE igs_pe_type_int pti
      SET   status = '1',
	    match_ind = '23'
      WHERE pti.status = '2' AND
	    pti.interface_run_id = l_interface_run_id AND
	    pti.match_ind IS NULL AND
	    EXISTS
	    (SELECT 1
	     FROM   igs_pe_typ_instances_all pi,
		    igs_ad_interface_all ai
	     WHERE  pti.interface_id     = ai.interface_id AND
	            ai.interface_run_id  = l_interface_run_id AND
		    ai.person_id         = pi.person_id AND
		    NVL(UPPER(pti.emplmnt_category_code),'*!*') = NVL(UPPER(pi.emplmnt_category_code),'*!*') AND
		    UPPER(pti.person_type_code) = UPPER(pi.person_type_code) AND
		    TRUNC(pti.start_date)= TRUNC(pi.start_date) AND
		    ((pti.end_date IS NULL AND pi.end_date IS NULL)
		      OR (TRUNC(pti.end_date) = TRUNC(pi.end_date)) ));
Line: 740

      UPDATE igs_pe_type_int pti
      SET   status='3',
	    match_ind='20',
	    dup_type_instance_id=(SELECT pi.type_instance_id
				  FROM   igs_pe_typ_instances_all pi,
					 igs_ad_interface_all ai
				  WHERE  pti.interface_id = ai.interface_id AND
				         ai.interface_run_id = l_interface_run_id AND
					 ai.person_id = pi.person_id AND
					 UPPER(pti.person_type_code)=UPPER(pi.person_type_code) AND
					 TRUNC(pti.start_date)=TRUNC(pi.start_date))
      WHERE  pti.status='2' AND
	    pti.interface_run_id = l_interface_run_id AND
	    pti.match_ind IS NULL AND
	    EXISTS
	    (SELECT 1
	     FROM igs_pe_typ_instances_all pi,
		  igs_ad_interface_all     ai
	     WHERE pti.interface_id=ai.interface_id AND
		  ai.interface_run_id = l_interface_run_id AND
		  ai.person_id = pi.person_id AND
		  UPPER(pti.person_type_code) = UPPER(pi.person_type_code) AND
		  TRUNC(pti.start_date) = TRUNC(pi.start_date));
Line: 798

                   update_person_type(per_type_rec,
                                      dup_per_type_rec.type_instance_id,
             				dup_per_type_rec.rowid,
                                      dup_per_type_rec.end_date,
                                      dup_per_type_rec.emplmnt_category_code,
                                      l_system_type,
                                      l_default_date);
Line: 808

                         update_person_type(per_type_rec,
                                            dup_per_type_rec.type_instance_id,
					    dup_per_type_rec.rowid,
                                            dup_per_type_rec.end_date,
                                            dup_per_type_rec.emplmnt_category_code,
                                            l_system_type,
                                            l_default_date);
Line: 825

		       -- Validation failed. Update with proper error code.

                UPDATE igs_pe_type_int
                SET    status = '3',
                       error_code = l_error_code
                WHERE  interface_person_type_id = per_type_rec.interface_person_type_id;
Line: 881

     SELECT  cst_insert dmlmode, rowid, a.*
     FROM IGS_AD_ACADHIS_INT_ALL a
     WHERE a.interface_run_id = p_interface_run_id
     AND  a.status = '2'
     AND   (  NOT EXISTS (SELECT 1 FROM hz_Education h1, hz_parties h2
                         WHERE  h1.party_id = a.person_id
                         AND h2.party_number = a.institution_code
                         AND h2.party_id = h1.school_party_id  )
                OR ( p_rule = 'R'  AND a.match_ind IN ('16', '25') )
              )
     AND UPDATE_EDUCATION_ID IS NULL
     AND a.interface_acadhis_id BETWEEN cp_min_interface_acadhis_id AND cp_max_interface_acadhis_id

--Exact match
     UNION ALL
     SELECT  cst_update dmlmode, rowid, a.*
     FROM IGS_AD_ACADHIS_INT_ALL a
     WHERE a.interface_run_id = p_interface_run_id
     AND  a.status = '2'
    AND (       p_rule = 'I'  OR (p_rule = 'R' AND a.match_ind = cst_mi_val_21))
     AND   (  EXISTS (SELECT 1 FROM hz_Education h1, hz_parties h2
                         WHERE  h1.party_id = a.person_id
                         AND h2.party_number = a.institution_code
                         AND h2.party_id = h1.school_party_id
                         AND TRUNC(NVL(h1.start_date_attended,
                                 TO_DATE('01-01-0001','DD-MM-YYYY'))) =
                             TRUNC(NVL(a.start_date,
                                 TO_DATE('01-01-0001','DD-MM-YYYY')))
                         AND TRUNC(NVL(h1.last_date_attended,
                                 TO_DATE('01-01-0001','DD-MM-YYYY'))) =
                             TRUNC(NVL(a.end_date,
                                 TO_DATE('01-01-0001','DD-MM-YYYY')))
                           )
               OR UPDATE_EDUCATION_ID IS NOT NULL
              )
      AND a.interface_acadhis_id BETWEEN cp_min_interface_acadhis_id AND cp_max_interface_acadhis_id
--First record update
--  ( matching instituion code but dates do not match and no partial match
--   ( both start date and end date for all OSS matching records is NULL))
     UNION ALL
     SELECT  cst_first_row dmlmode, rowid, a.*
     FROM IGS_AD_ACADHIS_INT_ALL a
     WHERE a.interface_run_id = p_interface_run_id
     AND  a.status = '2'
     AND  UPDATE_EDUCATION_ID IS NULL
     AND NVL(a.start_date,a.end_date) IS NOT NULL
     AND  EXISTS (SELECT 1 FROM hz_Education h1, hz_parties h2
                      WHERE  h1.party_id = a.person_id
                      AND h2.party_id = h1.school_party_id
                      AND h2.party_number = a.institution_code
                      AND h1.start_date_attended IS NULL
                      AND h1.last_date_attended IS NULL
                      )
     AND NOT EXISTS ( SELECT 1 FROM hz_Education h1, hz_parties h2
                    WHERE  h1.party_id = a.person_id
                      AND h2.party_number = a.institution_code
                      AND h2.party_id = h1.school_party_id
                    AND NVL(h1.start_date_attended,
                         h1.last_date_attended) IS NOT NULL
                 )
     AND a.interface_acadhis_id BETWEEN cp_min_interface_acadhis_id AND cp_max_interface_acadhis_id
-- Partial match finds single record, hence update if discrepancy rule is 'I'/'R-21' - per bug 3417941
     UNION ALL
     SELECT  cst_partial_update dmlmode, rowid, a.*
     FROM IGS_AD_ACADHIS_INT_ALL a
     WHERE a.interface_run_id = p_interface_run_id
     AND  a.status = '2'
     AND  UPDATE_EDUCATION_ID IS NULL
     AND  (p_rule = 'I'  OR (p_rule = 'R' AND a.match_ind = cst_mi_val_21))
     AND  1 = (SELECT count(*) FROM hz_Education h1, hz_parties h2
                      WHERE  h1.party_id = a.person_id
                      AND h2.party_id = h1.school_party_id
                      AND h2.party_number = a.institution_code
                      AND NVL(h1.start_date_attended,h1.last_date_attended) IS NOT NULL
                      AND (TRUNC(NVL(h1.start_date_attended,
                                 TO_DATE('01-01-0001','DD-MM-YYYY'))) <>
                             TRUNC(NVL(a.start_date,
                                 TO_DATE('01-01-0001','DD-MM-YYYY')))
                         OR TRUNC(NVL(h1.last_date_attended,
                                 TO_DATE('01-01-0001','DD-MM-YYYY'))) <>
                             TRUNC(NVL(a.end_date,
                                 TO_DATE('01-01-0001','DD-MM-YYYY'))))
                      )
    AND NOT EXISTS (SELECT 1 FROM hz_Education h1, hz_parties h2
                      WHERE  h1.party_id = a.person_id
                      AND h2.party_number = a.institution_code
                      AND h2.party_id = h1.school_party_id
                      AND TRUNC(NVL(h1.start_date_attended,
                            TO_DATE('01-01-0001','DD-MM-YYYY'))) =
                          TRUNC(NVL(a.start_date,
                            TO_DATE('01-01-0001','DD-MM-YYYY')))
                      AND TRUNC(NVL(h1.last_date_attended,
                            TO_DATE('01-01-0001','DD-MM-YYYY'))) =
                          TRUNC(NVL(a.end_date,
                            TO_DATE('01-01-0001','DD-MM-YYYY')))
                    )
    AND UPDATE_EDUCATION_ID IS NULL
    AND a.interface_acadhis_id BETWEEN cp_min_interface_acadhis_id AND cp_max_interface_acadhis_id;
Line: 981

                SELECT  ah.*
                FROM  igs_ad_acad_history_v ah
                WHERE
                     ( acad_hist_rec.update_education_id IS NULL
                       AND person_id = acad_hist_rec.person_id
                       AND institution_code  = acad_hist_rec.institution_code
                       AND TRUNC(NVL(start_date,
                                     TO_DATE('01-01-0001','DD-MM-YYYY'))) =
                                  TRUNC(NVL(acad_hist_rec.start_date,
                                      TO_DATE('01-01-0001','DD-MM-YYYY')))
                      AND TRUNC(NVL(end_date,
                                      TO_DATE('01-01-0001','DD-MM-YYYY'))) =
                                  TRUNC(NVL(acad_hist_rec.end_date,
                                      TO_DATE('01-01-0001','DD-MM-YYYY')))
                      )
                OR (acad_hist_rec.update_education_id IS NOT NULL
                      AND ah.education_id = acad_hist_rec.update_education_id
                     );
Line: 1002

        SELECT   ah.*
        FROM  igs_ad_acad_history_v ah
        WHERE person_id = acad_hist_rec.person_id
        AND institution_code  = acad_hist_rec.institution_code
        AND CREATION_DATE =
              (SELECT MIN(he.creation_date) FROM  hz_education he, hz_parties hz
                WHERE  he.party_id = acad_hist_rec.person_id
                AND  hz.party_id = he.school_party_id
                 AND hz.party_number =  acad_hist_rec.institution_code );
Line: 1014

                SELECT  ah.*
                FROM  igs_ad_acad_history_v ah
                WHERE person_id = acad_hist_rec.person_id
                AND institution_code  = acad_hist_rec.institution_code;
Line: 1038

     SELECT hp.rowid  row_id
     FROM
        hz_parties p,
        igs_pe_hz_parties hp
     WHERE hp.party_id = p.party_id
     AND   hp.inst_org_ind = 'I'
     AND p.party_number = person_history_rec.institution_code;
Line: 1047

     SELECT HP.rowid  row_id
     FROM  HZ_PARTIES P,
               IGS_PE_HZ_PARTIES HP,
               IGS_OR_ORG_INST_TYPE_ALL OIT
     WHERE HP.PARTY_ID = P.PARTY_ID
     AND      HP.INST_ORG_IND = 'I'
     AND   p.party_number = person_history_rec.institution_code
     AND      HP.OI_INSTITUTION_TYPE = OIT.INSTITUTION_TYPE (+)
     AND      OIT.SYSTEM_INST_TYPE IN ('POST-SECONDARY','SECONDARY');
Line: 1285

        Igs_Ad_Acad_History_Pkg.Insert_Row (
            x_rowid                         => l_RowId,
            x_attribute14                   => PERSON_HISTORY_REC.attribute14,
            x_attribute15                   => PERSON_HISTORY_REC.attribute15,
            x_attribute16                   => PERSON_HISTORY_REC.attribute16,
            x_attribute17                   => PERSON_HISTORY_REC.attribute17,
            x_attribute18                   => PERSON_HISTORY_REC.attribute18,
            x_attribute19                   => PERSON_HISTORY_REC.attribute19,
            x_attribute20                   => PERSON_HISTORY_REC.attribute20,
            x_attribute13                   => PERSON_HISTORY_REC.attribute13,
            x_attribute11                   => PERSON_HISTORY_REC.attribute11,
            x_attribute12                   => PERSON_HISTORY_REC.attribute12,
            x_education_id                  => l_education_id,
            x_person_id                     => PERSON_HISTORY_REC.Person_Id,
            x_current_inst                  => PERSON_HISTORY_REC.current_inst,
            x_degree_attempted        => PERSON_HISTORY_REC.degree_attempted,
            x_program_code                  => PERSON_HISTORY_REC.Program_Code,
            x_degree_earned           => PERSON_HISTORY_REC.degree_earned,
            x_comments                      => PERSON_HISTORY_REC.Comments,
            x_start_date                    =>  TRUNC(PERSON_HISTORY_REC.Start_Date),
            x_end_date                      => TRUNC(PERSON_HISTORY_REC.End_Date),
            x_planned_completion_date       => TRUNC(person_history_rec.planned_completion_date),
            x_recalc_total_cp_attempted     => NULL,
            x_recalc_total_cp_earned        => NULL,
            x_recalc_total_unit_gp          => NULL,
            x_recalc_tot_gpa_units_attemp   => NULL,--recalc_tot_gpa_units_attemp,
            x_recalc_inst_gpa               => NULL, --recalc_inst_gpa,
            x_recalc_grading_scale_id       => NULL,
            x_selfrep_total_cp_attempted    => PERSON_HISTORY_REC.selfrep_total_cp_attempted,
            x_selfrep_total_cp_earned       =>  PERSON_HISTORY_REC.selfrep_total_cp_earned,
            x_selfrep_total_unit_gp         => NULL, --selfrep_total_unit_gp,
            x_selfrep_tot_gpa_uts_attemp    => NULL,
            x_selfrep_inst_gpa              => PERSON_HISTORY_REC.selfrep_inst_gpa,
            x_selfrep_grading_scale_id      => PERSON_HISTORY_REC.selfrep_grading_scale_id,
            x_selfrep_weighted_gpa          => PERSON_HISTORY_REC.selfrep_weighted_gpa,
            x_selfrep_rank_in_class         => PERSON_HISTORY_REC.selfrep_rank_in_class,
            x_selfrep_weighed_rank          => PERSON_HISTORY_REC.selfrep_weighted_rank,
            x_type_of_school                => PERSON_HISTORY_REC.type_of_school,
            x_institution_code              => PERSON_HISTORY_REC.institution_code,
            x_attribute_category            => PERSON_HISTORY_REC.attribute_category,
            x_attribute1                    => PERSON_HISTORY_REC.attribute1,
            x_attribute2                    => PERSON_HISTORY_REC.attribute2,
            x_attribute3                    => PERSON_HISTORY_REC.attribute3,
            x_attribute4                    => PERSON_HISTORY_REC.attribute4,
            x_attribute5                    => PERSON_HISTORY_REC.attribute5,
            x_attribute6                    => PERSON_HISTORY_REC.attribute6,
            x_attribute7                    => PERSON_HISTORY_REC.attribute7,
            x_attribute8                    => PERSON_HISTORY_REC.attribute8,
            x_attribute9                    => PERSON_HISTORY_REC.attribute9,
            x_attribute10                   => PERSON_HISTORY_REC.attribute10,
            -- Added Class Size As part of the ID Prospective Applicant part 2 of 1
            x_selfrep_class_size            => PERSON_HISTORY_REC.class_size,
            -- Added Transcript Required as a part of DLD_ADSR_IMPORT_TEST_RESULTS
            x_transcript_required           => NVL(PERSON_HISTORY_REC.transcript_required,'Y'),
            x_object_version_number     => l_object_version_number,
            x_msg_data                      => l_msg_data,
            x_return_status                 => l_return_status,
            x_mode                          => 'R');
Line: 1381

            UPDATE
	      IGS_AD_ACADHIS_INT_ALL
            SET
	      error_code = l_error_Code,
              error_text  = l_error_text,
              status = cst_s_val_3,
              match_ind = DECODE (
                                       person_history_rec.match_ind,
                                              NULL, cst_mi_val_11,
                                       match_ind)
           WHERE
	    INTERFACE_ACADHIS_ID = PERSON_HISTORY_REC.INTERFACE_ACADHIS_ID;
Line: 1397

        UPDATE  IGS_AD_ACADHIS_INT_ALL
        SET  error_code = 'E322',
                 error_text =  l_msg_data,
             status = '3',
              match_ind = DECODE (
                                       person_history_rec.match_ind,
                                              NULL, cst_mi_val_11,
                                       match_ind)
        WHERE   INTERFACE_ACADHIS_ID = PERSON_HISTORY_REC.INTERFACE_ACADHIS_ID;
Line: 1410

	-- updated education_id after successful insert
        UPDATE  IGS_AD_ACADHIS_INT_ALL
        SET    status = cst_s_val_1,
	       error_code = cst_ec_val_NULL,
	       education_id = l_education_id
        WHERE   INTERFACE_ACADHIS_ID = PERSON_HISTORY_REC.INTERFACE_ACADHIS_ID;
Line: 1418

        UPDATE  IGS_AD_ACADHIS_INT_ALL
        SET  error_code = l_error_code,
          error_Text =  igs_ad_gen_016.get_lkup_meaning ('IMPORT_ERROR_CODE', l_error_code, 8405),
             status = l_status,
              match_ind = DECODE (
                                       person_history_rec.match_ind,
                                              NULL, cst_mi_val_11,
                                       match_ind)
        WHERE   INTERFACE_ACADHIS_ID = PERSON_HISTORY_REC.INTERFACE_ACADHIS_ID;
Line: 1454

          SAVEPOINT  before_update_hist;
Line: 1456

            Igs_Ad_Acad_History_Pkg.update_row (
             x_rowid                       => c_null_hdlg_acad_hist_cur_rec.row_id,
             x_attribute14                 => c_null_hdlg_acad_hist_cur_rec.attribute14,
             x_attribute15                 => c_null_hdlg_acad_hist_cur_rec.attribute15,
             x_attribute16                 => c_null_hdlg_acad_hist_cur_rec.attribute16,
             x_attribute17                 => c_null_hdlg_acad_hist_cur_rec.attribute17,
             x_attribute18                 => c_null_hdlg_acad_hist_cur_rec.attribute18,
             x_attribute19                 => c_null_hdlg_acad_hist_cur_rec.attribute19,
             x_attribute20                 => c_null_hdlg_acad_hist_cur_rec.attribute20,
             x_attribute13                 => c_null_hdlg_acad_hist_cur_rec.attribute13,
             x_attribute11                 => c_null_hdlg_acad_hist_cur_rec.attribute11,
             x_attribute12                 => c_null_hdlg_acad_hist_cur_rec.attribute12,
             x_education_id                => c_null_hdlg_acad_hist_cur_rec.Education_Id,
             x_person_id                   => NVL(PERSON_HISTORY_REC.Person_Id,c_null_hdlg_acad_hist_cur_rec.person_id),
             x_current_inst                => NVL(PERSON_HISTORY_REC.current_inst,c_null_hdlg_acad_hist_cur_rec.current_inst),
             x_degree_attempted      => NVL(PERSON_HISTORY_REC.degree_attempted,c_null_hdlg_acad_hist_cur_rec.degree_attempted),
             x_program_code                => NVL(PERSON_HISTORY_REC.Program_Code,c_null_hdlg_acad_hist_cur_rec.Program_Code),
             x_degree_earned         => NVL(PERSON_HISTORY_REC.degree_earned,c_null_hdlg_acad_hist_cur_rec.degree_earned),
             x_comments                    => NVL(PERSON_HISTORY_REC.Comments,c_null_hdlg_acad_hist_cur_rec.Comments),
             x_start_date                  =>  TRUNC(NVL(PERSON_HISTORY_REC.Start_Date,c_null_hdlg_acad_hist_cur_rec.Start_Date)),
             x_end_date                    => TRUNC(NVL(PERSON_HISTORY_REC.End_Date,c_null_hdlg_acad_hist_cur_rec.End_Date)),
             x_planned_completion_date     => NVL(person_history_rec.planned_completion_date,c_null_hdlg_acad_hist_cur_rec.planned_completion_date),
             x_recalc_total_cp_attempted   => c_null_hdlg_acad_hist_cur_rec.recalc_total_cp_attempted,
             x_recalc_total_cp_earned      => c_null_hdlg_acad_hist_cur_rec.recalc_total_cp_earned,
             x_recalc_total_unit_gp        => c_null_hdlg_acad_hist_cur_rec.recalc_total_unit_gp,
             x_recalc_tot_gpa_units_attemp => c_null_hdlg_acad_hist_cur_rec.recalc_total_gpa_units_attemp,
             x_recalc_inst_gpa             => c_null_hdlg_acad_hist_cur_rec.recalc_inst_gpa,
             x_recalc_grading_scale_id     => c_null_hdlg_acad_hist_cur_rec.recalc_grading_scale_id,
             x_selfrep_total_cp_attempted  => NVL(PERSON_HISTORY_REC.selfrep_total_cp_attempted,c_null_hdlg_acad_hist_cur_rec.selfrep_total_cp_attempted),
             x_selfrep_total_cp_earned     =>  NVL(PERSON_HISTORY_REC.selfrep_total_cp_earned,c_null_hdlg_acad_hist_cur_rec.selfrep_total_cp_earned),
             x_selfrep_total_unit_gp       => c_null_hdlg_acad_hist_cur_rec.selfrep_total_unit_gp,
             x_selfrep_tot_gpa_uts_attemp  =>  NVL(person_history_rec.selfrep_total_gp_units_attemp,c_null_hdlg_acad_hist_cur_rec.selfrep_total_gpa_units_attemp),
             x_selfrep_inst_gpa            =>   NVL(PERSON_HISTORY_REC.selfrep_inst_gpa,c_null_hdlg_acad_hist_cur_rec.selfrep_inst_gpa),
             x_selfrep_grading_scale_id    => NVL(PERSON_HISTORY_REC.selfrep_grading_scale_id,c_null_hdlg_acad_hist_cur_rec.selfrep_grading_scale_id),
             x_selfrep_weighted_gpa        => NVL(PERSON_HISTORY_REC.selfrep_weighted_gpa,c_null_hdlg_acad_hist_cur_rec.selfrep_weighted_gpa),
             x_selfrep_rank_in_class       => NVL(PERSON_HISTORY_REC.selfrep_rank_in_class,c_null_hdlg_acad_hist_cur_rec.selfrep_rank_in_class),
             x_selfrep_weighed_rank        => NVL(PERSON_HISTORY_REC.selfrep_weighted_rank,c_null_hdlg_acad_hist_cur_rec.selfrep_weighed_rank),
             x_type_of_school              => NVL(PERSON_HISTORY_REC.type_of_school,c_null_hdlg_acad_hist_cur_rec.type_of_school),
             x_institution_code            => NVL(PERSON_HISTORY_REC.institution_code,c_null_hdlg_acad_hist_cur_rec.institution_code),
             x_attribute_category          => c_null_hdlg_acad_hist_cur_rec.attribute_category,
             x_attribute1                  => c_null_hdlg_acad_hist_cur_rec.attribute1,
             x_attribute2                  => c_null_hdlg_acad_hist_cur_rec.attribute2,
             x_attribute3                  => c_null_hdlg_acad_hist_cur_rec.attribute3,
             x_attribute4                  => c_null_hdlg_acad_hist_cur_rec.attribute4,
             x_attribute5                  => c_null_hdlg_acad_hist_cur_rec.attribute5,
             x_attribute6                  => c_null_hdlg_acad_hist_cur_rec.attribute6,
             x_attribute7                  => c_null_hdlg_acad_hist_cur_rec.attribute7,
             x_attribute8                  => c_null_hdlg_acad_hist_cur_rec.attribute8,
             x_attribute9                  => c_null_hdlg_acad_hist_cur_rec.attribute9,
             x_attribute10                 => c_null_hdlg_acad_hist_cur_rec.attribute10,
             -- Added Class Size As part of the ID Prospective Applicant part 2 of 1
             x_selfrep_class_size          => NVL(PERSON_HISTORY_REC.class_size,c_null_hdlg_acad_hist_cur_rec.SELFREP_CLASS_SIZE),
             -- Added Transcript Required as a part of the DLD_ADRS_IMPORT_TEST_RESULTS DLD
             x_transcript_required         => NVL(PERSON_HISTORY_REC.transcript_required,c_null_hdlg_acad_hist_cur_rec.transcript_required),
             x_msg_data                    => l_msg_data,
             x_return_status               => l_return_status,
             x_object_version_number => l_object_version_number,
             x_mode                        => 'R');
Line: 1516

          ROLLBACK TO before_update_hist;
Line: 1553

            UPDATE
	      IGS_AD_ACADHIS_INT_ALL
            SET
	      error_code = l_error_Code,
              error_text  =l_error_text,
              status = '3',
              match_ind = DECODE (
                                       person_history_rec.match_ind,
                                              NULL, cst_mi_val_12,
                                       match_ind)
           WHERE
	    INTERFACE_ACADHIS_ID = PERSON_HISTORY_REC.INTERFACE_ACADHIS_ID;
Line: 1570

             UPDATE       IGS_AD_ACADHIS_INT_ALL
             SET          error_code = 'E014',
                          status = '3',
                          error_text = l_msg_data,
                          match_ind = DECODE (
                                       person_history_rec.match_ind,
                                              NULL, cst_mi_val_12,
                                       match_ind)
             WHERE        INTERFACE_ACADHIS_ID = PERSON_HISTORY_REC.INTERFACE_ACADHIS_ID;
Line: 1582

	    -- updated education_id after successful update
	     UPDATE	IGS_AD_ACADHIS_INT_ALL
             SET       match_ind = decode ( person_history_rec.dmlmode,
	                                    cst_partial_update, cst_mi_val_12,
					    decode ( person_history_rec.match_ind ,
					             NULL, cst_mi_val_18,
					             person_history_rec.match_ind)),
                       status = cst_s_val_1,
			      education_id = c_null_hdlg_acad_hist_cur_rec.Education_Id
             WHERE     INTERFACE_ACADHIS_ID = PERSON_HISTORY_REC.INTERFACE_ACADHIS_ID;
Line: 1594

          UPDATE	IGS_AD_ACADHIS_INT_ALL
            SET     status = cst_s_val_3,
                       error_code = l_error_code,
                       error_Text  = igs_ad_gen_016.get_lkup_meaning ('IMPORT_ERROR_CODE', l_error_code, 8405),
                       match_ind = DECODE (
                                       person_history_rec.match_ind,
                                              NULL, cst_mi_val_12,
                                       match_ind),
                       education_id = c_null_hdlg_acad_hist_cur_rec.Education_Id
            WHERE     INTERFACE_ACADHIS_ID = PERSON_HISTORY_REC.INTERFACE_ACADHIS_ID;
Line: 1619

   UPDATE IGS_AD_ACADHIS_INT_ALL  acad
   SET
      status = '3',  error_code =  'E711',
      error_Text  = igs_ad_gen_016.get_lkup_meaning ('IMPORT_ERROR_CODE', 'E711', 8405)
      WHERE  update_education_id IS NOT NULL
      AND NOT EXISTS ( SELECT 1 FROM HZ_EDUCATION
                                     WHERE party_id = acad.person_id
                                     AND    education_id = NVL(acad.update_education_id ,education_id)
                                   ) ;
Line: 1631

           UPDATE IGS_AD_ACADHIS_INT_ALL
           SET
           status = '3'
           , error_code = 'E700'
           ,error_Text  = igs_ad_gen_016.get_lkup_meaning ('IMPORT_ERROR_CODE', 'E700', 8405)
           WHERE interface_run_id = p_interface_run_id
           AND status = '2'
          AND NVL (match_ind, '15') <> '15';
Line: 1644

      UPDATE IGS_AD_ACADHIS_INT_ALL
      SET
      status = '1',  error_code = NULL
      WHERE interface_run_id = p_interface_run_id
      AND status = '2'
      AND match_ind IN ('17', '18', '19', '22', '23', '24', '27');
Line: 1655

     UPDATE IGS_AD_ACADHIS_INT_ALL a
     SET
     status = '3'
     , match_ind = '13'
     WHERE interface_run_id = p_interface_run_id
     AND status = '2'
     AND UPDATE_EDUCATION_ID IS NULL
     AND 1  <  ( SELECT COUNT (*)
                       FROM hz_Education h1, hz_parties h2
                         WHERE  h1.party_id = a.person_id
                         AND h2.party_number = a.institution_code
                         AND h2.party_id = h1.school_party_id
                         AND TRUNC(NVL(h1.start_date_attended,
                                 TO_DATE('01-01-0001','DD-MM-YYYY'))) =
                             TRUNC(NVL(a.start_date,
                                 TO_DATE('01-01-0001','DD-MM-YYYY')))
                         AND TRUNC(NVL(h1.last_date_attended,
                                 TO_DATE('01-01-0001','DD-MM-YYYY'))) =
                             TRUNC(NVL(a.end_date,
                                 TO_DATE('01-01-0001','DD-MM-YYYY')))
                    );
Line: 1682

    UPDATE IGS_AD_ACADHIS_INT_ALL a
    SET
    status = '3'
    , match_ind = '13'
    WHERE interface_run_id = p_interface_run_id
    AND status = '2'
    AND UPDATE_EDUCATION_ID IS NULL
    AND NVL(match_ind, '15')  IN ('15', '21')
    AND 1  <  ( SELECT COUNT (*)
                      FROM hz_Education h1, hz_parties h2
                         WHERE  h1.party_id = a.person_id
                         AND h2.party_number = a.institution_code
                         AND h2.party_id = h1.school_party_id
                         AND TRUNC(NVL(h1.start_date_attended,
                                 TO_DATE('01-01-0001','DD-MM-YYYY'))) =
                             TRUNC(NVL(a.start_date,
                                 TO_DATE('01-01-0001','DD-MM-YYYY')))
                         AND TRUNC(NVL(h1.last_date_attended,
                                 TO_DATE('01-01-0001','DD-MM-YYYY'))) =
                             TRUNC(NVL(a.end_date,
                                 TO_DATE('01-01-0001','DD-MM-YYYY')))
                   );
Line: 1709

      UPDATE IGS_AD_ACADHIS_INT_ALL  a
      SET
         status = '1'
        , match_ind = '19'
        , education_id = update_education_id
      WHERE update_education_id IS NOT NULL;
Line: 1717

      UPDATE IGS_AD_ACADHIS_INT_ALL  a
      SET
         status = '3'
        , match_ind = '19'
        ,error_code = 'E708'
        ,error_Text  = igs_ad_gen_016.get_lkup_meaning ('IMPORT_ERROR_CODE', 'E708', 8405)
      WHERE interface_run_id = p_interface_run_id
      AND status = '2'
      AND   1 < (SELECT count(*)  FROM hz_Education h1, hz_parties h2
                         WHERE  h1.party_id = a.person_id
                         AND h2.party_number = a.institution_code
                         AND h2.party_id = h1.school_party_id
                         AND TRUNC(NVL(h1.start_date_attended,
                                 TO_DATE('01-01-0001','DD-MM-YYYY'))) =
                             TRUNC(NVL(a.start_date,
                                 TO_DATE('01-01-0001','DD-MM-YYYY')))
                         AND TRUNC(NVL(h1.last_date_attended,
                                 TO_DATE('01-01-0001','DD-MM-YYYY'))) =
                             TRUNC(NVL(a.end_date,
                                 TO_DATE('01-01-0001','DD-MM-YYYY')))
                     )
         AND EXISTS (SELECT 1 FROM igs_ad_txcpt_int
                WHERE interface_acadhis_id = a.interface_acadhis_id
                AND status = '2');
Line: 1743

      UPDATE IGS_AD_ACADHIS_INT_ALL  a
      SET
         status = '1'
        , match_ind = '19'
        , education_id =
                        ( SELECT h1.education_id FROM hz_Education h1, hz_parties h2
                         WHERE  h1.party_id = a.person_id
                         AND h2.party_number = a.institution_code
                         AND h2.party_id = h1.school_party_id
                         AND TRUNC(NVL(h1.start_date_attended,
                                 TO_DATE('01-01-0001','DD-MM-YYYY'))) =
                             TRUNC(NVL(a.start_date,
                                 TO_DATE('01-01-0001','DD-MM-YYYY')))
                         AND TRUNC(NVL(h1.last_date_attended,
                                 TO_DATE('01-01-0001','DD-MM-YYYY'))) =
                             TRUNC(NVL(a.end_date,
                                 TO_DATE('01-01-0001','DD-MM-YYYY')))
                        AND rownum <= 1 )
      WHERE interface_run_id = p_interface_run_id
     AND status = '2'
     AND EXISTS (SELECT 1 FROM hz_Education h1, hz_parties h2
                         WHERE  h1.party_id = a.person_id
                         AND h2.party_number = a.institution_code
                         AND h2.party_id = h1.school_party_id
                         AND TRUNC(NVL(h1.start_date_attended,
                                 TO_DATE('01-01-0001','DD-MM-YYYY'))) =
                             TRUNC(NVL(a.start_date,
                                 TO_DATE('01-01-0001','DD-MM-YYYY')))
                         AND TRUNC(NVL(h1.last_date_attended,
                                 TO_DATE('01-01-0001','DD-MM-YYYY'))) =
                             TRUNC(NVL(a.end_date,
                                 TO_DATE('01-01-0001','DD-MM-YYYY')))
                        );
Line: 1778

      UPDATE IGS_AD_ACADHIS_INT_ALL  a
      SET
         status = '1'
        , match_ind = '19'
        , education_id =
                        ( SELECT h1.education_id FROM hz_Education h1, hz_parties h2
                         WHERE  h1.party_id = a.person_id
                         AND h2.party_number = a.institution_code
                         AND h2.party_id = h1.school_party_id
                         AND NVL(h1.start_date_attended,h1.last_date_attended) IS NOT NULL
                         AND (TRUNC(NVL(h1.start_date_attended,
                                 TO_DATE('01-01-0001','DD-MM-YYYY'))) <>
                             TRUNC(NVL(a.start_date,
                                 TO_DATE('01-01-0001','DD-MM-YYYY')))
                         OR TRUNC(NVL(h1.last_date_attended,
                                 TO_DATE('01-01-0001','DD-MM-YYYY'))) <>
                             TRUNC(NVL(a.end_date,
                                 TO_DATE('01-01-0001','DD-MM-YYYY'))))
                        )
      WHERE interface_run_id = p_interface_run_id
     AND status = '2'
     AND 1 = (SELECT count(*) FROM hz_Education h1, hz_parties h2
                         WHERE  h1.party_id = a.person_id
                         AND h2.party_number = a.institution_code
                         AND h2.party_id = h1.school_party_id
                         AND NVL(h1.start_date_attended,h1.last_date_attended) IS NOT NULL
                         AND (TRUNC(NVL(h1.start_date_attended,
                                 TO_DATE('01-01-0001','DD-MM-YYYY'))) <>
                             TRUNC(NVL(a.start_date,
                                 TO_DATE('01-01-0001','DD-MM-YYYY')))
                         OR TRUNC(NVL(h1.last_date_attended,
                                 TO_DATE('01-01-0001','DD-MM-YYYY'))) <>
                             TRUNC(NVL(a.end_date,
                                 TO_DATE('01-01-0001','DD-MM-YYYY'))))
                        );
Line: 1818

6. Create / Update the OSS record after validating successfully the interface record
Create
    If RULE I (match indicator will be 15 or NULL by now no need to check) and matching system record not found OR
    RULE = R and MATCH IND = 16, 25
Update
    If RULE = I (match indicator will be 15 or NULL by now no need to check) OR
    RULE = R and MATCH IND = 21
UPdate
     If all the partilly matched OSS records have both start date and end date NULL THEN
     update First OSS record which partilaly matched.

Selecting together the interface records for INSERT / UPDATE with DMLMODE identifying the DML operation.
This is done to have one code section for record validation, exception handling and interface table update.
This avoids call to separate PLSQL blocks, tuning performance on stack maintenance during the process.

**********************************************************************************/

SELECT COUNT(interface_acadhis_id)
INTO l_count_interface_acadhis_id
FROM IGS_AD_ACADHIS_INT_ALL
WHERE interface_run_id = p_interface_run_id
AND status =2 ;
Line: 1846

SELECT
    MIN(interface_acadhis_id) , MAX(interface_acadhis_id)
INTO l_min_interface_acadhis_id , l_max_interface_acadhis_id
FROM IGS_AD_ACADHIS_INT_ALL
WHERE interface_run_id = p_interface_run_id
AND status =2
AND rownum < =100;
Line: 1858

       IF acad_hist_rec.dmlmode =  cst_insert  THEN
          crc_pe_acad_hist(acad_hist_rec);
Line: 1860

       ELSIF  acad_hist_rec.dmlmode = cst_update THEN
          dup_cur_rec.education_id  := NULL;
Line: 1871

       ELSIF acad_hist_rec.dmlmode = cst_partial_update THEN
          OPEN c_dup_cur_partial(acad_hist_rec);
Line: 1890

       UPDATE IGS_AD_ACADHIS_INT_ALL  acad
       SET
         status = '1'
         , match_ind = '23'
       WHERE interface_run_id = p_interface_run_id
       AND status = '2'
       AND NVL (match_ind, '15') = '15'
       AND EXISTS (SELECT 1 FROM igs_ad_acad_history_v WHERE
                    person_id =  acad.person_id
                    AND NVL(current_inst, 'X') = NVL(NVL(acad.current_inst, current_inst),  'X')
                    AND STATUS = acad.status
                    AND NVL(degree_attempted, 'X') = NVL(NVL(acad.degree_attempted , degree_attempted ), 'X')
                    AND NVL(program_code, 'X') = NVL(NVL(acad.program_code,  program_code), 'X')
                    AND NVL(degree_earned, 'X') = NVL(NVL(acad.degree_earned, degree_earned ), 'X')
                    AND NVL(comments, 'X') = NVL(NVL(acad.comments,comments),  'X')
                    AND NVL(to_char(start_date,'DDMMYYYY'), '01011900') = NVL(NVL(to_char(acad.start_date,'DDMMYYYY'), to_char(start_date,'DDMMYYYY')),'01011900')
                    AND NVL(to_char(end_date,'DDMMYYYY'), '01011900') = NVL(NVL(to_char(acad.end_date,'DDMMYYYY'), to_char(end_date,'DDMMYYYY') ), '01011900')
                    AND NVL(to_char(planned_completion_date,'DDMMYYYY'), '01011900') =
                                                NVL(NVL(to_char(acad.planned_completion_date, 'DDMMYYYY'), to_char(planned_completion_date,'DDMMYYYY') ), '01011900')
                    AND NVL(selfrep_total_cp_attempted, -1) = NVL(NVL(acad.selfrep_total_cp_attempted, selfrep_total_cp_attempted),  -1)
                    AND NVL(selfrep_total_cp_earned, -1) = NVL(NVL(acad.selfrep_total_cp_earned, selfrep_total_cp_earned),  -1)
                    AND NVL(SELFREP_TOTAL_GPA_UNITS_ATTEMP, -1) = NVL(NVL(acad.SELFREP_TOTAL_GP_UNITS_ATTEMP, SELFREP_TOTAL_GP_UNITS_ATTEMP),  -1)
                    AND NVL(selfrep_inst_gpa, 'X') = NVL(NVL(acad.selfrep_inst_gpa, selfrep_inst_gpa), 'X')
                    AND NVL(selfrep_grading_scale_id, -1) = NVL(NVL(acad.selfrep_grading_scale_id,selfrep_grading_scale_id),  -1)
                    AND NVL(selfrep_weighted_gpa, 'X') = NVL(NVL(acad.selfrep_weighted_gpa, selfrep_weighted_gpa), 'X')
                    AND NVL(selfrep_rank_in_class, -1) = NVL(NVL(acad.selfrep_rank_in_class, selfrep_rank_in_class), -1)
                    AND NVL(selfrep_weighed_rank, 'X') = NVL(NVL(acad.selfrep_weighted_rank, selfrep_weighted_rank), 'X')
                    AND NVL(type_of_school, 'X') = NVL(NVL(acad.type_of_school, type_of_school), 'X')
                    AND NVL(ATTRIBUTE_CATEGORY, 'X') = NVL( NVL(acad.ATTRIBUTE_CATEGORY,ATTRIBUTE_CATEGORY), 'X')
                    AND NVL(ATTRIBUTE1, 'X') = NVL(NVL(acad.ATTRIBUTE1, ATTRIBUTE1), 'X')
                    AND NVL(ATTRIBUTE2, 'X') = NVL(NVL(acad.ATTRIBUTE2, ATTRIBUTE2),'X')
                    AND NVL(ATTRIBUTE3, 'X') = NVL(NVL(acad.ATTRIBUTE3,ATTRIBUTE3),  'X')
                    AND NVL(ATTRIBUTE4, 'X') = NVL(NVL(acad.ATTRIBUTE4,ATTRIBUTE4),  'X')
                    AND NVL(ATTRIBUTE5, 'X') = NVL(NVL(acad.ATTRIBUTE5,ATTRIBUTE5), 'X')
                    AND NVL(ATTRIBUTE6, 'X') = NVL(NVL(acad.ATTRIBUTE6,ATTRIBUTE6), 'X')
                    AND NVL(ATTRIBUTE7, 'X') = NVL(NVL(acad.ATTRIBUTE7, ATTRIBUTE7),'X')
                    AND NVL(ATTRIBUTE8, 'X') = NVL(NVL(acad.ATTRIBUTE8, ATTRIBUTE8),'X')
                    AND NVL(ATTRIBUTE9, 'X') = NVL(NVL(acad.ATTRIBUTE9, ATTRIBUTE9),'X')
                    AND NVL(ATTRIBUTE10, 'X') = NVL(NVL(acad.ATTRIBUTE10, ATTRIBUTE10),'X')
                    AND NVL(ATTRIBUTE11, 'X') = NVL(NVL(acad.ATTRIBUTE11, ATTRIBUTE11),'X')
                    AND NVL(ATTRIBUTE12, 'X') = NVL(NVL(acad.ATTRIBUTE12,ATTRIBUTE12), 'X')
                    AND NVL(ATTRIBUTE13, 'X') = NVL(NVL(acad.ATTRIBUTE13, ATTRIBUTE13),'X')
                    AND NVL(ATTRIBUTE14, 'X') = NVL(NVL(acad.ATTRIBUTE14, ATTRIBUTE14),'X')
                    AND NVL(ATTRIBUTE15, 'X') = NVL(NVL(acad.ATTRIBUTE15, ATTRIBUTE15),'X')
                    AND NVL(ATTRIBUTE16, 'X') = NVL(NVL(acad.ATTRIBUTE16,ATTRIBUTE16), 'X')
                    AND NVL(ATTRIBUTE17, 'X') = NVL(NVL(acad.ATTRIBUTE17,ATTRIBUTE17), 'X')
                    AND NVL(ATTRIBUTE18, 'X') = NVL(NVL(acad.ATTRIBUTE18,ATTRIBUTE18), 'X')
                    AND NVL(ATTRIBUTE19, 'X') = NVL(NVL(acad.ATTRIBUTE19,ATTRIBUTE19), 'X')
                    AND NVL(ATTRIBUTE20, 'X') = NVL(NVL(acad.ATTRIBUTE20,ATTRIBUTE20), 'X')
                    -- Added Class Size As part of the ID Prospective Applicant part 2 of 1
                    AND NVL(selfrep_class_size,-1) = NVL(NVL(acad.class_size, class_size),-1)
               );
Line: 1947

        UPDATE IGS_AD_ACADHIS_INT_ALL  acad
        SET
        status = '3'
        , match_ind = '20'
        , dup_acad_history_id =   ( SELECT  hz_acad_hist_id   FROM  igs_Ad_Hz_Acad_Hist
                                               WHERE education_id =     acad.update_education_id
                                             )
        WHERE interface_run_id = p_interface_run_id
        AND status = '2'
        AND NVL (match_ind, '15') = '15'
        AND update_Education_id IS NOT NULL;
Line: 1961

       UPDATE IGS_AD_ACADHIS_INT_ALL  acad
        SET
        status = '3'
        , match_ind = '20'
        , dup_acad_history_id =   ( SELECT  hz_acad_hist_id   FROM  igs_Ad_Hz_Acad_Hist
                                               WHERE education_id =
                                                               (SELECT education_id  FROM  hz_Education h1, hz_parties h2
                                                                WHERE  h1.party_id = acad.person_id
                                                               AND h2.party_number = acad.institution_code
                                                              AND h2.party_id = h1.school_party_id
                                                              AND NVL(h1.start_date_attended,
                                                                        TO_DATE('01-01-0001','DD-MM-YYYY')) =
                                                                     NVL(acad.start_date,
                                                                          TO_DATE('01-01-0001','DD-MM-YYYY'))
                                                             AND NVL(h1.last_date_attended,
                                                                        TO_DATE('01-01-0001','DD-MM-YYYY')) =
                                                                  NVL(acad.end_date,
                                                                        TO_DATE('01-01-0001','DD-MM-YYYY'))
                                                             )
                                               )



        WHERE interface_run_id = p_interface_run_id
        AND status = '2'
        AND NVL (match_ind, '15') = '15'
        AND (  EXISTS (SELECT 1 FROM  hz_Education h1, hz_parties h2
                                         WHERE  h1.party_id = acad.person_id
                                        AND h2.party_number = acad.institution_code
                                        AND h2.party_id = h1.school_party_id
                                        AND NVL(h1.start_date_attended,
                                                TO_DATE('01-01-0001','DD-MM-YYYY')) =
                                               NVL(acad.start_date,
                                                 TO_DATE('01-01-0001','DD-MM-YYYY'))
                                       AND NVL(h1.last_date_attended,
                                            TO_DATE('01-01-0001','DD-MM-YYYY')) =
                                         NVL(acad.end_date,
                                      TO_DATE('01-01-0001','DD-MM-YYYY'))
                              )
               );
Line: 2005

     UPDATE IGS_AD_ACADHIS_INT_ALL  acad
       SET
       status = '3'
      , match_ind = '14'
      WHERE interface_run_id = p_interface_run_id
       AND status = '2'
       AND 1<  ( SELECT COUNT(*)  FROM  hz_Education h1, hz_parties h2
                                         WHERE  h1.party_id = acad.person_id
                                        AND h2.party_number = acad.institution_code
                                        AND h2.party_id = h1.school_party_id
                           );
Line: 2019

     UPDATE IGS_AD_ACADHIS_INT_ALL  acad
       SET
       status = '3'
      , match_ind = '20'
      WHERE interface_run_id = p_interface_run_id
       AND status = '2'
       AND EXISTS ( SELECT 1 FROM  hz_Education h1, hz_parties h2
                                         WHERE  h1.party_id = acad.person_id
                                        AND h2.party_number = acad.institution_code
                                        AND h2.party_id = h1.school_party_id
                       );
Line: 2034

        UPDATE IGS_AD_ACADHIS_INT_ALL  acad
        SET
        status = '3'
        , error_code = 'E700'
        ,error_Text  = igs_ad_gen_016.get_lkup_meaning ('IMPORT_ERROR_CODE', 'E700', 8405)
        WHERE interface_run_id = p_interface_run_id
        AND status = '2'
        AND match_ind IS NOT NULL;
Line: 2069

     SELECT  cst_insert dmlmode, cred.rowid, ad.person_id, cred.*
     FROM IGS_AD_INTERFACE_ALL ad , IGS_PE_CRED_INT  cred
     WHERE cred.interface_run_id = p_interface_run_id
     AND  ad.status IN ('1', '4')
     AND  cred.interface_id = ad.interface_id
     AND  cred.status = '2'
     AND (          NOT EXISTS (SELECT 1 FROM IGS_PE_CREDENTIALS
                         WHERE  person_id = ad.person_id
	     	         AND credential_type_id = cred.credential_type_id
		         AND TRUNC(NVL(date_received, IGS_GE_DATE.IGSDATE('1700/01/01'))) =
                         TRUNC(NVL(cred.date_received,  IGS_GE_DATE.IGSDATE('1700/01/01')))   )
                  OR ( p_rule = 'R'  AND cred.match_ind IN ('16', '25') )
            )
     UNION ALL
     SELECT  cst_update dmlmode, cred.rowid, ad.person_id, cred.*
     FROM IGS_AD_INTERFACE_ALL ad , IGS_PE_CRED_INT  cred
     WHERE cred.interface_run_id = p_interface_run_id
     AND  ad.status IN ('1', '4')
     AND  cred.interface_id = ad.interface_id
     AND  cred.status = '2'
     AND (       p_rule = 'I'  OR (p_rule = 'R' AND cred.match_ind = cst_mi_val_21))
     AND EXISTS  (SELECT 1 FROM IGS_PE_CREDENTIALS
                          WHERE  person_id = ad.person_id
       	     	          AND credential_type_id = cred.credential_type_id
     		          AND TRUNC(NVL(date_received, IGS_GE_DATE.IGSDATE('1700/01/01'))) =
                           TRUNC(NVL(cred.date_received,  IGS_GE_DATE.IGSDATE('1700/01/01')))
            );
Line: 2098

	SELECT
	  pcreds.rowid, pcreds.*
	FROM
	  igs_pe_credentials pcreds
	WHERE
	  person_id = cp_pe_cr_rec.person_id
	AND credential_type_id = cp_pe_cr_rec.credential_type_id
	AND TRUNC(NVL(date_received, IGS_GE_DATE.IGSDATE('1700/01/01'))) = TRUNC(NVL(cp_pe_cr_rec.date_received,  IGS_GE_DATE.IGSDATE('1700/01/01')));
Line: 2143

			SELECT
			'X'
			FROM
			igs_ad_cred_types
			WHERE
			credential_type_id = cp_pe_cr_rec.credential_type_id
			AND closed_ind = 'N';
Line: 2152

			SELECT
			'X'
			FROM
			igs_lookup_values
			WHERE lookup_type = 'PE_CRE_RATING' AND
			  lookup_code = cp_pe_cr_rec.rating_code AND
			  enabled_flag = 'Y';
Line: 2161

			SELECT
			'X'
			FROM
			  hz_parties
			WHERE
			party_id = cp_pe_cr_rec.reviewer_id;
Line: 2218

		PROCEDURE  update_pe_cred(cp_pe_cr_rec  c_pe_cr_cur%ROWTYPE, cp_dup_cur_rec  c_dup_cur%ROWTYPE) AS
		/***********************************************
		||   Created By :Praveen Bondugula
		||  Date Created By :24-apr-2003
		||  Purpose : update  person credentials in the existing record
		|| Known limitations, enhancements or remarks
		||  Change History
		||  Who             When            What
		||
		**********************************************/
		  l_status           VARCHAR2(1);
Line: 2232

                     l_label := 'igs.plsql.igs_ad_imp_028.update_pe_cred.begin';
Line: 2233

                     l_debug_str :=  'igs_ad_imp_028.update_pe_cred';
Line: 2247

				igs_pe_credentials_pkg.update_row(
				x_rowid                => dup_cur_rec.rowid,
				x_credential_id       =>  dup_cur_rec.credential_id,
				x_person_id                    => cp_dup_cur_rec.person_id,
				x_credential_type_id           => cp_dup_cur_rec.credential_type_id,
				x_date_received                => TRUNC (NVL( cp_pe_cr_rec.date_received, cp_dup_cur_rec.date_received)),
				x_reviewer_id                  =>  NVL(cp_pe_cr_rec.reviewer_id, cp_dup_cur_rec.reviewer_id),
				x_reviewer_notes               =>  NVL(cp_pe_cr_rec.reviewer_notes, cp_dup_cur_rec.reviewer_notes),
				x_recommender_name          =>  NVL( cp_pe_cr_rec.recommender_name, cp_dup_cur_rec.recommender_name),
				x_recommender_title            =>  NVL( cp_pe_cr_rec.recommender_title, cp_dup_cur_rec.recommender_title),
				x_recommender_organization=>  NVL( cp_pe_cr_rec.recommender_organization, cp_dup_cur_rec.recommender_organization),
				x_mode                         => 'R',
				x_rating_code                  =>  NVL( cp_pe_cr_rec.rating_code,cp_dup_cur_rec.rating_code)
				);
Line: 2262

					UPDATE igs_pe_cred_int
					SET status = cst_s_val_1, error_code = cst_ec_val_NULL, match_ind = cst_mi_val_18
					WHERE   interface_cred_id = cp_pe_cr_rec.interface_cred_id;
Line: 2267

                               UPDATE igs_pe_cred_int
                                SET
                                status = cst_s_val_3
                                , match_ind = DECODE (
                                                     cp_pe_cr_rec.match_ind,
                                                            NULL, cst_mi_val_12,
                                                     match_ind)
                                , error_code = l_error_code
                                WHERE rowid = cp_pe_cr_rec.rowid ;
Line: 2304

			          l_label := 'igs.plsql.igs_ad_imp_028.update_pe_cred.exception '|| l_msg_data;
Line: 2320

                        UPDATE igs_pe_cred_int
                        SET
                             status = cst_s_val_3
                             , match_ind = DECODE (
                                                     cp_pe_cr_rec.match_ind,
                                                            NULL, cst_mi_val_12,
                                                     match_ind)
                                , error_code = l_error_code
                                ,error_text = l_error_text
                                WHERE rowid = cp_pe_cr_rec.rowid ;
Line: 2333

		END update_pe_cred;
Line: 2336

		PROCEDURE insert_pe_cred(cp_pe_cr_rec  c_pe_cr_cur%ROWTYPE) AS
		/***********************************************
		||   Created By :Praveen Bondugula
		||  Date Created By :24-apr-2003
		||  Purpose : Inserts the credentials into the OSS table.
		|| Known limitations, enhancements or remarks
		||  Change History
		||  Who             When            What
		||
		**********************************************/
		  l_status           VARCHAR2(1);
Line: 2353

                     l_label := 'igs.plsql.igs_ad_imp_028.insert_pe_cred.begin';
Line: 2354

                     l_debug_str :=  'igs_ad_imp_028.insert_pe_cred';
Line: 2369

				igs_pe_credentials_pkg.insert_row(
				x_rowid                => l_rowid,
				x_credential_id       =>  l_credential_id,
				x_person_id                    => cp_pe_cr_rec.person_id,
				x_credential_type_id           => cp_pe_cr_rec.credential_type_id,
				x_date_received                => TRUNC (cp_pe_cr_rec.date_received),
				x_reviewer_id                  => cp_pe_cr_rec.reviewer_id,
				x_reviewer_notes               => cp_pe_cr_rec.reviewer_notes,
				x_recommender_name          => cp_pe_cr_rec.recommender_name,
				x_recommender_title            => cp_pe_cr_rec.recommender_title,
				x_recommender_organization=> cp_pe_cr_rec.recommender_organization,
				x_mode                         => 'R',
				x_rating_code                  => cp_pe_cr_rec.rating_code);
Line: 2383

					UPDATE igs_pe_cred_int
					SET status = cst_s_val_1,
                                        error_code = cst_ec_val_NULL,
                                        match_ind = cst_mi_val_11
					WHERE   interface_cred_id = cp_pe_cr_rec.interface_cred_id;
Line: 2389

                               UPDATE igs_pe_cred_int
                                SET
                                status = cst_s_val_3
                                , match_ind = DECODE (
                                                     cp_pe_cr_rec.match_ind,
                                                            NULL, cst_mi_val_11,
                                                     match_ind)
                                , error_code = l_error_code
                                WHERE rowid = cp_pe_cr_rec.rowid ;
Line: 2406

				   l_label := 'igs.plsql.igs_ad_imp_028.insert_pe_cred.exception'||l_msg_data;
Line: 2441

			          l_label := 'igs.plsql.igs_ad_imp_028.update_pe_cred.exception '||'E322';
Line: 2457

                        UPDATE igs_pe_cred_int
                        SET
                             status = cst_s_val_3
                             , match_ind = DECODE (
                                                     cp_pe_cr_rec.match_ind,
                                                            NULL, cst_mi_val_11,
                                                     match_ind)
                                , error_code = l_error_code
                                ,error_text = l_error_text
                                WHERE rowid = cp_pe_cr_rec.rowid ;
Line: 2469

		END insert_pe_cred;
Line: 2489

             UPDATE IGS_PE_CRED_INT
             SET
             status = '3'
             , error_code = 'E700'
             WHERE interface_run_id = p_interface_run_id
             AND status = '2'
            AND NVL (match_ind, '15') <> '15';
Line: 2501

        UPDATE igs_pe_cred_int
        SET
        status = '1',  error_code = NULL
        WHERE interface_run_id = p_interface_run_id
        AND status = '2'
        AND match_ind IN ('17', '18', '19', '22', '23', '24', '27');
Line: 2512

     UPDATE igs_pe_cred_int cred
     SET
     status = '3'
     , match_ind = '13'
     WHERE interface_run_id = p_interface_run_id
     AND status = '2'
     AND 1  <  ( SELECT COUNT(*)
                        FROM igs_pe_credentials  cred_oss
                        WHERE  person_id = (SELECT person_id FROM igs_ad_interface_all
                                                       WHERE interface_id = cred.interface_id)
	AND credential_type_id = cred.credential_type_id
	AND TRUNC(NVL(date_received, IGS_GE_DATE.IGSDATE('1700/01/01'))) =
                         TRUNC(NVL(cred.date_received,  IGS_GE_DATE.IGSDATE('1700/01/01')))
                   );
Line: 2532

     UPDATE igs_pe_cred_int cred
     SET
     status = '3'
     , match_ind = '13'
    WHERE interface_run_id = p_interface_run_id
    AND status = '2'
    AND NVL(match_ind, '15')  IN ('15', '21')
     AND 1  <  ( SELECT COUNT(*)
                        FROM igs_pe_credentials  cred_oss
                        WHERE  person_id = (SELECT person_id FROM igs_ad_interface_all
                                                       WHERE interface_id = cred.interface_id)
	AND credential_type_id = cred.credential_type_id
	AND TRUNC(NVL(date_received, IGS_GE_DATE.IGSDATE('1700/01/01'))) =
                                TRUNC(NVL(cred.date_received,  IGS_GE_DATE.IGSDATE('1700/01/01')))
                   );
Line: 2552

      UPDATE IGS_PE_CRED_INT  cred
      SET
         status = '1'
        , match_ind = '19'
      WHERE interface_run_id = p_interface_run_id
     AND status = '2'
     AND EXISTS (  SELECT 1 FROM IGS_PE_CREDENTIALS
                         WHERE  person_id IN  (SELECT PERSON_ID FROM IGS_AD_INTERFACE_ALL
                                                WHERE interface_id = cred.interface_id AND interface_run_id = p_interface_run_id)
        		              AND credential_type_id = cred.credential_type_id
 		                      AND TRUNC(NVL(date_received, IGS_GE_DATE.IGSDATE('1700/01/01'))) =
                                      TRUNC(NVL(cred.date_received,  IGS_GE_DATE.IGSDATE('1700/01/01')))
                         );
Line: 2569

Create / Update the OSS record after validating successfully the interface record
Create
    If RULE I (match indicator will be 15 or NULL by now no need to check) and matching system record not found OR
    RULE = R and MATCH IND = 16, 25
Update
    If RULE = I (match indicator will be 15 or NULL by now no need to check) OR
    RULE = R and MATCH IND = 21

Selecting together the interface records for INSERT / UPDATE with DMLMODE identifying the DML operation.
This is done to have one code section for record validation, exception handling and interface table update.
This avoids call to separate PLSQL blocks, tuning performance on stack maintenance during the process.

**********************************************************************************/
FOR pe_cr_cur_rec IN c_pe_cr_cur
LOOP
       IF pe_cr_cur_rec.dmlmode =  cst_insert  THEN
           insert_pe_cred(pe_cr_cur_rec);
Line: 2586

       ELSIF  pe_cr_cur_rec.dmlmode = cst_update THEN
          OPEN c_dup_cur(pe_cr_cur_rec);
Line: 2590

           update_pe_cred(pe_cr_cur_rec, dup_cur_rec);
Line: 2604

   ALL updateable column values, if column nullification is not allowed then the 2 DECODE should be replaced by a single NVL*/
     IF p_rule = 'R'  THEN
       UPDATE IGS_PE_CRED_INT  cred
       SET
         status = '1'
         , match_ind = '23'
       WHERE interface_run_id = p_interface_run_id
       AND status = '2'
       AND NVL (match_ind, '15') = '15'
       AND EXISTS ( SELECT   'x'
	  FROM
	   igs_pe_credentials
	  WHERE person_id  IN  (SELECT PERSON_ID FROM IGS_AD_INTERFACE_ALL
                                                WHERE interface_id = cred.interface_id
                                                AND interface_run_id = p_interface_run_id)
	  AND credential_type_id = cred.credential_type_id
	  AND TRUNC(NVL(date_received, IGS_GE_DATE.IGSDATE('1700/01/01'))) =
                           TRUNC(NVL(cred.date_received, NVL(date_received, IGS_GE_DATE.IGSDATE('1700/01/01'))))
	  AND NVL(RATING_CODE, '-1')                         = NVL(cred.rating_code, NVL(RATING_CODE, '-1'))
	  AND NVL(REVIEWER_ID, -1)                    = NVL(cred.reviewer_id, NVL(REVIEWER_ID, -1))
	  AND NVL(REVIEWER_NOTES, '-1')                 = NVL(cred.reviewer_notes, NVL(REVIEWER_NOTES, '-1'))
	  AND NVL(RECOMMENDER_NAME, '-1')               = NVL(cred.recommender_name, NVL(RECOMMENDER_NAME, '-1'))
	  AND NVL(RECOMMENDER_TITLE , '-1')             = NVL(cred.recommender_title, NVL(RECOMMENDER_TITLE , '-1'))
	  AND NVL(recommender_organization, '-1')       = NVL(cred.recommender_organization,NVL(recommender_organization, '-1'))
                );
Line: 2635

        UPDATE IGS_PE_CRED_INT  cred
        SET
        status = '3'
        , match_ind = '20'
        , dup_credential_id= (SELECT credential_id  FROM igs_pe_credentials
                                      WHERE  person_id IN  (SELECT PERSON_ID FROM IGS_AD_INTERFACE_ALL
                                                        WHERE interface_id = cred.interface_id AND interface_run_id = p_interface_run_id)
                                      AND credential_type_id = cred.credential_type_id
                                     AND TRUNC(NVL(date_received, IGS_GE_DATE.IGSDATE('1700/01/01'))) =
                                              TRUNC(NVL(cred.date_received,  IGS_GE_DATE.IGSDATE('1700/01/01'))))
        WHERE interface_run_id = p_interface_run_id
        AND status = '2'
        AND NVL (match_ind, '15') = '15'
        AND EXISTS (SELECT credential_id  FROM igs_pe_credentials
                              WHERE  person_id IN  (SELECT PERSON_ID FROM IGS_AD_INTERFACE_ALL
                                                            WHERE interface_id = cred.interface_id AND interface_run_id = p_interface_run_id)
                              AND credential_type_id = cred.credential_type_id
                              AND TRUNC(NVL(date_received, IGS_GE_DATE.IGSDATE('1700/01/01'))) =
                                        TRUNC(NVL(cred.date_received,  IGS_GE_DATE.IGSDATE('1700/01/01'))));
Line: 2662

        UPDATE IGS_PE_CRED_INT  cred
        SET
        status = '3'
        , error_code = 'E700'
        WHERE interface_run_id = p_interface_run_id
        AND status = '2'
        AND match_ind IS NOT NULL;