The following lines contain the word 'select', 'insert', 'update' or 'delete':
procedure update_person
(p_validate in boolean default false
,p_effective_date in date
,p_attribute_update_mode in varchar2
,p_person_id in number
,p_object_version_number in out nocopy number
,p_person_type_id in number default hr_api.g_number
,p_last_name in varchar2 default hr_api.g_varchar2
,p_applicant_number in varchar2 default hr_api.g_varchar2
,p_comments in varchar2 default hr_api.g_varchar2
,p_date_employee_data_verified in date default hr_api.g_date
,p_date_of_birth in date default hr_api.g_date
,p_email_address in varchar2 default hr_api.g_varchar2
,p_employee_number in out nocopy varchar2
,p_expense_check_send_to_addres in varchar2 default hr_api.g_varchar2
,p_first_name in varchar2 default hr_api.g_varchar2
,p_known_as in varchar2 default hr_api.g_varchar2
,p_marital_status in varchar2 default hr_api.g_varchar2
,p_middle_names in varchar2 default hr_api.g_varchar2
,p_nationality in varchar2 default hr_api.g_varchar2
,p_national_identifier in varchar2 default hr_api.g_varchar2
,p_previous_last_name in varchar2 default hr_api.g_varchar2
,p_registered_disabled_flag in varchar2 default hr_api.g_varchar2
,p_sex in varchar2 default hr_api.g_varchar2
,p_title in varchar2 default hr_api.g_varchar2
,p_vendor_id in number default hr_api.g_number
,p_work_telephone in varchar2 default hr_api.g_varchar2
,p_suffix in varchar2 default hr_api.g_varchar2
,p_attribute_category in varchar2 default hr_api.g_varchar2
,p_attribute1 in varchar2 default hr_api.g_varchar2
,p_attribute2 in varchar2 default hr_api.g_varchar2
,p_attribute3 in varchar2 default hr_api.g_varchar2
,p_attribute4 in varchar2 default hr_api.g_varchar2
,p_attribute5 in varchar2 default hr_api.g_varchar2
,p_attribute6 in varchar2 default hr_api.g_varchar2
,p_attribute7 in varchar2 default hr_api.g_varchar2
,p_attribute8 in varchar2 default hr_api.g_varchar2
,p_attribute9 in varchar2 default hr_api.g_varchar2
,p_attribute10 in varchar2 default hr_api.g_varchar2
,p_attribute11 in varchar2 default hr_api.g_varchar2
,p_attribute12 in varchar2 default hr_api.g_varchar2
,p_attribute13 in varchar2 default hr_api.g_varchar2
,p_attribute14 in varchar2 default hr_api.g_varchar2
,p_attribute15 in varchar2 default hr_api.g_varchar2
,p_attribute16 in varchar2 default hr_api.g_varchar2
,p_attribute17 in varchar2 default hr_api.g_varchar2
,p_attribute18 in varchar2 default hr_api.g_varchar2
,p_attribute19 in varchar2 default hr_api.g_varchar2
,p_attribute20 in varchar2 default hr_api.g_varchar2
,p_attribute21 in varchar2 default hr_api.g_varchar2
,p_attribute22 in varchar2 default hr_api.g_varchar2
,p_attribute23 in varchar2 default hr_api.g_varchar2
,p_attribute24 in varchar2 default hr_api.g_varchar2
,p_attribute25 in varchar2 default hr_api.g_varchar2
,p_attribute26 in varchar2 default hr_api.g_varchar2
,p_attribute27 in varchar2 default hr_api.g_varchar2
,p_attribute28 in varchar2 default hr_api.g_varchar2
,p_attribute29 in varchar2 default hr_api.g_varchar2
,p_attribute30 in varchar2 default hr_api.g_varchar2
,p_per_information_category in varchar2 default hr_api.g_varchar2
,p_per_information1 in varchar2 default hr_api.g_varchar2
,p_per_information2 in varchar2 default hr_api.g_varchar2
,p_per_information3 in varchar2 default hr_api.g_varchar2
,p_per_information4 in varchar2 default hr_api.g_varchar2
,p_per_information5 in varchar2 default hr_api.g_varchar2
,p_per_information6 in varchar2 default hr_api.g_varchar2
,p_per_information7 in varchar2 default hr_api.g_varchar2
,p_per_information8 in varchar2 default hr_api.g_varchar2
,p_per_information9 in varchar2 default hr_api.g_varchar2
,p_per_information10 in varchar2 default hr_api.g_varchar2
,p_per_information11 in varchar2 default hr_api.g_varchar2
,p_per_information12 in varchar2 default hr_api.g_varchar2
,p_per_information13 in varchar2 default hr_api.g_varchar2
,p_per_information14 in varchar2 default hr_api.g_varchar2
,p_per_information15 in varchar2 default hr_api.g_varchar2
,p_per_information16 in varchar2 default hr_api.g_varchar2
,p_per_information17 in varchar2 default hr_api.g_varchar2
,p_per_information18 in varchar2 default hr_api.g_varchar2
,p_per_information19 in varchar2 default hr_api.g_varchar2
,p_per_information20 in varchar2 default hr_api.g_varchar2
,p_per_information21 in varchar2 default hr_api.g_varchar2
,p_per_information22 in varchar2 default hr_api.g_varchar2
,p_per_information23 in varchar2 default hr_api.g_varchar2
,p_per_information24 in varchar2 default hr_api.g_varchar2
,p_per_information25 in varchar2 default hr_api.g_varchar2
,p_per_information26 in varchar2 default hr_api.g_varchar2
,p_per_information27 in varchar2 default hr_api.g_varchar2
,p_per_information28 in varchar2 default hr_api.g_varchar2
,p_per_information29 in varchar2 default hr_api.g_varchar2
,p_per_information30 in varchar2 default hr_api.g_varchar2
,p_date_of_death in date default hr_api.g_date
,p_background_check_status in varchar2 default hr_api.g_varchar2
,p_background_date_check in date default hr_api.g_date
,p_blood_type in varchar2 default hr_api.g_varchar2
,p_correspondence_language in varchar2 default hr_api.g_varchar2
,p_fast_path_employee in varchar2 default hr_api.g_varchar2
,p_fte_capacity in number default hr_api.g_number
,p_hold_applicant_date_until in date default hr_api.g_date
,p_honors in varchar2 default hr_api.g_varchar2
,p_internal_location in varchar2 default hr_api.g_varchar2
,p_last_medical_test_by in varchar2 default hr_api.g_varchar2
,p_last_medical_test_date in date default hr_api.g_date
,p_mailstop in varchar2 default hr_api.g_varchar2
,p_office_number in varchar2 default hr_api.g_varchar2
,p_on_military_service in varchar2 default hr_api.g_varchar2
,p_pre_name_adjunct in varchar2 default hr_api.g_varchar2
,p_projected_start_date in date default hr_api.g_date
,p_rehire_authorizor in varchar2 default hr_api.g_varchar2
,p_rehire_recommendation in varchar2 default hr_api.g_varchar2
,p_resume_exists in varchar2 default hr_api.g_varchar2
,p_resume_last_updated in date default hr_api.g_date
,p_second_passport_exists in varchar2 default hr_api.g_varchar2
,p_student_status in varchar2 default hr_api.g_varchar2
,p_work_schedule in varchar2 default hr_api.g_varchar2
,p_rehire_reason in varchar2 default hr_api.g_varchar2
,p_benefit_group_id in number default hr_api.g_number
,p_receipt_of_death_cert_date in date default hr_api.g_date
,p_coord_ben_med_pln_no in varchar2 default hr_api.g_varchar2
,p_coord_ben_no_cvg_flag in varchar2 default hr_api.g_varchar2
,p_uses_tobacco_flag in varchar2 default hr_api.g_varchar2
,p_dpdnt_adoption_date in date default hr_api.g_date
,p_dpdnt_vlntry_svce_flag in varchar2 default hr_api.g_varchar2
,p_original_date_of_hire in date default hr_api.g_date
,p_town_of_birth in varchar2 default hr_api.g_varchar2
,p_region_of_birth in varchar2 default hr_api.g_varchar2
,p_country_of_birth in varchar2 default hr_api.g_varchar2
,p_global_person_id in varchar2 default hr_api.g_varchar2
,p_effective_start_date out nocopy date
,p_effective_end_date out nocopy date
,p_full_name out nocopy varchar2
,p_comment_id out nocopy number
,p_name_combination_warning out nocopy boolean
,p_assign_payroll_warning out nocopy boolean
,p_orig_hire_warning out nocopy boolean) is
-- --------------------------------------------------------------------------
-- declare local variables
-- --------------------------------------------------------------------------
l_proc varchar2(72) := g_package||'update_person';
l_datetrack_update_mode varchar2(30);
l_update boolean;
l_update_override boolean;
l_update_change_insert boolean;
select 1
from per_people_f per
where per.person_id = p_person_id
and per.effective_end_date >= c_lck_start_date
for update nowait;
select per.object_version_number
,per.person_type_id
,per.employee_number
,per.last_name
,per.applicant_number
,per.date_employee_data_verified
,per.date_of_birth
,per.email_address
,per.expense_check_send_to_address
,per.first_name
,per.known_as
,per.marital_status
,per.middle_names
,per.nationality
,per.national_identifier
,per.previous_last_name
,per.registered_disabled_flag
,per.sex
,per.title
,per.vendor_id
,per.work_telephone
,per.suffix
,per.attribute_category
,per.attribute1
,per.attribute2
,per.attribute3
,per.attribute4
,per.attribute5
,per.attribute6
,per.attribute7
,per.attribute8
,per.attribute9
,per.attribute10
,per.attribute11
,per.attribute12
,per.attribute13
,per.attribute14
,per.attribute15
,per.attribute16
,per.attribute17
,per.attribute18
,per.attribute19
,per.attribute20
,per.attribute21
,per.attribute22
,per.attribute23
,per.attribute24
,per.attribute25
,per.attribute26
,per.attribute27
,per.attribute28
,per.attribute29
,per.attribute30
,per.per_information_category
,per.per_information1
,per.per_information2
,per.per_information3
,per.per_information4
,per.per_information5
,per.per_information6
,per.per_information7
,per.per_information8
,per.per_information9
,per.per_information10
,per.per_information11
,per.per_information12
,per.per_information13
,per.per_information14
,per.per_information15
,per.per_information16
,per.per_information17
,per.per_information18
,per.per_information19
,per.per_information20
,per.per_information21
,per.per_information22
,per.per_information23
,per.per_information24
,per.per_information25
,per.per_information26
,per.per_information27
,per.per_information28
,per.per_information29
,per.per_information30
,per.date_of_death
,per.background_check_status
,per.background_date_check
,per.blood_type
,per.correspondence_language
,per.fast_path_employee
,per.fte_capacity
,per.hold_applicant_date_until
,per.honors
,per.internal_location
,per.last_medical_test_by
,per.last_medical_test_date
,per.mailstop
,per.office_number
,per.on_military_service
,per.pre_name_adjunct
,per.projected_start_date
,per.rehire_authorizor
,per.rehire_recommendation
,per.resume_exists
,per.resume_last_updated
,per.second_passport_exists
,per.student_status
,per.work_schedule
,per.rehire_reason
,per.benefit_group_id
,per.receipt_of_death_cert_date
,per.coord_ben_med_pln_no
,per.coord_ben_no_cvg_flag
,per.uses_tobacco_flag
,per.dpdnt_adoption_date
,per.dpdnt_vlntry_svce_flag
,per.original_date_of_hire
,per.town_of_birth
,per.region_of_birth
,per.country_of_birth
,per.global_person_id
,per.effective_start_date
,per.effective_end_date
,hc.comment_text
from hr_comments hc
,per_all_people_f per
where per.person_id = p_person_id
and per.effective_end_date >= l_constant_effective_date
and hc.comment_id (+) = per.comment_id
order by per.effective_end_date asc;
select per.object_version_number
,per.person_type_id
,per.employee_number
,per.last_name
,per.applicant_number
,per.date_employee_data_verified
,per.date_of_birth
,per.email_address
,per.expense_check_send_to_address
,per.first_name
,per.known_as
,per.marital_status
,per.middle_names
,per.nationality
,per.national_identifier
,per.previous_last_name
,per.registered_disabled_flag
,per.sex
,per.title
,per.vendor_id
,per.work_telephone
,per.suffix
,per.attribute_category
,per.attribute1
,per.attribute2
,per.attribute3
,per.attribute4
,per.attribute5
,per.attribute6
,per.attribute7
,per.attribute8
,per.attribute9
,per.attribute10
,per.attribute11
,per.attribute12
,per.attribute13
,per.attribute14
,per.attribute15
,per.attribute16
,per.attribute17
,per.attribute18
,per.attribute19
,per.attribute20
,per.attribute21
,per.attribute22
,per.attribute23
,per.attribute24
,per.attribute25
,per.attribute26
,per.attribute27
,per.attribute28
,per.attribute29
,per.attribute30
,per.per_information_category
,per.per_information1
,per.per_information2
,per.per_information3
,per.per_information4
,per.per_information5
,per.per_information6
,per.per_information7
,per.per_information8
,per.per_information9
,per.per_information10
,per.per_information11
,per.per_information12
,per.per_information13
,per.per_information14
,per.per_information15
,per.per_information16
,per.per_information17
,per.per_information18
,per.per_information19
,per.per_information20
,per.per_information21
,per.per_information22
,per.per_information23
,per.per_information24
,per.per_information25
,per.per_information26
,per.per_information27
,per.per_information28
,per.per_information29
,per.per_information30
,per.date_of_death
,per.background_check_status
,per.background_date_check
,per.blood_type
,per.correspondence_language
,per.fast_path_employee
,per.fte_capacity
,per.hold_applicant_date_until
,per.honors
,per.internal_location
,per.last_medical_test_by
,per.last_medical_test_date
,per.mailstop
,per.office_number
,per.on_military_service
,per.pre_name_adjunct
,per.projected_start_date
,per.rehire_authorizor
,per.rehire_recommendation
,per.resume_exists
,per.resume_last_updated
,per.second_passport_exists
,per.student_status
,per.work_schedule
,per.rehire_reason
,per.benefit_group_id
,per.receipt_of_death_cert_date
,per.coord_ben_med_pln_no
,per.coord_ben_no_cvg_flag
,per.uses_tobacco_flag
,per.dpdnt_adoption_date
,per.dpdnt_vlntry_svce_flag
,per.original_date_of_hire
,per.town_of_birth
,per.region_of_birth
,per.country_of_birth
,per.global_person_id
,per.effective_start_date
,per.effective_end_date
,hc.comment_text
from hr_comments hc
,per_all_people_f per
where per.person_id = p_person_id
and per.effective_end_date < l_constant_effective_date
and hc.comment_id (+) = per.comment_id
order by per.effective_end_date desc;
l_resume_last_updated per_people_f.resume_last_updated%type;
,c_resume_last_updated in date default hr_api.g_date
,c_second_passport_exists in varchar2 default hr_api.g_varchar2
,c_student_status in varchar2 default hr_api.g_varchar2
,c_work_schedule in varchar2 default hr_api.g_varchar2
,c_rehire_reason in varchar2 default hr_api.g_varchar2
,c_benefit_group_id in number default hr_api.g_number
,c_receipt_of_death_cert_date in date default hr_api.g_date
,c_coord_ben_med_pln_no in varchar2 default hr_api.g_varchar2
,c_coord_ben_no_cvg_flag in varchar2 default hr_api.g_varchar2
,c_uses_tobacco_flag in varchar2 default hr_api.g_varchar2
,c_dpdnt_adoption_date in date default hr_api.g_date
,c_dpdnt_vlntry_svce_flag in varchar2 default hr_api.g_varchar2
,c_original_date_of_hire in date default hr_api.g_date
,c_town_of_birth in varchar2 default hr_api.g_varchar2
,c_region_of_birth in varchar2 default hr_api.g_varchar2
,c_country_of_birth in varchar2 default hr_api.g_varchar2
,c_global_person_id in varchar2 default hr_api.g_varchar2 )
return boolean is
l_proc varchar2(72) := g_package||'process_row';
l_resume_last_updated := hr_dt_attribute_support.get_parameter_date
(p_effective_date_row => l_effective_date_row
,p_parameter_name => 'P_RESUME_LAST_UPDATED'
,p_new_value => p_resume_last_updated
,p_current_value => c_resume_last_updated);
hr_person_api.update_person
(p_effective_date => l_effective_date
,p_datetrack_update_mode => l_datetrack_update_mode
,p_person_id => p_person_id
,p_object_version_number => l_object_version_number
,p_person_type_id => l_person_type_id
,p_applicant_number => l_applicant_number
,p_comments => l_comments
,p_date_employee_data_verified => l_date_employee_data_verified
,p_expense_check_send_to_addres => l_expense_check_send_to_addres
,p_national_identifier => l_national_identifier
,p_registered_disabled_flag => l_registered_disabled_flag
,p_vendor_id => l_vendor_id
,p_employee_number => l_employee_number
,p_title => l_title
,p_marital_status => l_marital_status
,p_first_name => l_first_name
,p_middle_names => l_middle_names
,p_last_name => l_last_name
,p_known_as => l_known_as
,p_previous_last_name => l_previous_last_name
,p_date_of_birth => l_date_of_birth
,p_email_address => l_email_address
,p_nationality => l_nationality
,p_sex => l_sex
,p_work_telephone => l_work_telephone
,p_suffix => l_suffix
,p_attribute_category => l_attribute_category
,p_attribute1 => l_attribute1
,p_attribute2 => l_attribute2
,p_attribute3 => l_attribute3
,p_attribute4 => l_attribute4
,p_attribute5 => l_attribute5
,p_attribute6 => l_attribute6
,p_attribute7 => l_attribute7
,p_attribute8 => l_attribute8
,p_attribute9 => l_attribute9
,p_attribute10 => l_attribute10
,p_attribute11 => l_attribute11
,p_attribute12 => l_attribute12
,p_attribute13 => l_attribute13
,p_attribute14 => l_attribute14
,p_attribute15 => l_attribute15
,p_attribute16 => l_attribute16
,p_attribute17 => l_attribute17
,p_attribute18 => l_attribute18
,p_attribute19 => l_attribute19
,p_attribute20 => l_attribute20
,p_attribute21 => l_attribute21
,p_attribute22 => l_attribute22
,p_attribute23 => l_attribute23
,p_attribute24 => l_attribute24
,p_attribute25 => l_attribute25
,p_attribute26 => l_attribute26
,p_attribute27 => l_attribute27
,p_attribute28 => l_attribute28
,p_attribute29 => l_attribute29
,p_attribute30 => l_attribute30
,p_per_information_category => l_per_information_category
,p_per_information1 => l_per_information1
,p_per_information2 => l_per_information2
,p_per_information3 => l_per_information3
,p_per_information4 => l_per_information4
,p_per_information5 => l_per_information5
,p_per_information6 => l_per_information6
,p_per_information7 => l_per_information7
,p_per_information8 => l_per_information8
,p_per_information9 => l_per_information9
,p_per_information10 => l_per_information10
,p_per_information11 => l_per_information11
,p_per_information12 => l_per_information12
,p_per_information13 => l_per_information13
,p_per_information14 => l_per_information14
,p_per_information15 => l_per_information15
,p_per_information16 => l_per_information16
,p_per_information17 => l_per_information17
,p_per_information18 => l_per_information18
,p_per_information19 => l_per_information19
,p_per_information20 => l_per_information20
,p_per_information21 => l_per_information21
,p_per_information22 => l_per_information22
,p_per_information23 => l_per_information23
,p_per_information24 => l_per_information24
,p_per_information25 => l_per_information25
,p_per_information26 => l_per_information26
,p_per_information27 => l_per_information27
,p_per_information28 => l_per_information28
,p_per_information29 => l_per_information29
,p_per_information30 => l_per_information30
,p_date_of_death => l_date_of_death
,p_background_check_status => l_background_check_status
,p_background_date_check => l_background_date_check
,p_blood_type => l_blood_type
,p_correspondence_language => l_correspondence_language
,p_fast_path_employee => l_fast_path_employee
,p_fte_capacity => l_fte_capacity
,p_hold_applicant_date_until => l_hold_applicant_date_until
,p_honors => l_honors
,p_internal_location => l_internal_location
,p_last_medical_test_by => l_last_medical_test_by
,p_last_medical_test_date => l_last_medical_test_date
,p_mailstop => l_mailstop
,p_office_number => l_office_number
,p_on_military_service => l_on_military_service
,p_pre_name_adjunct => l_pre_name_adjunct
,p_projected_start_date => l_projected_start_date
,p_rehire_authorizor => l_rehire_authorizor
,p_rehire_recommendation => l_rehire_recommendation
,p_resume_exists => l_resume_exists
,p_resume_last_updated => l_resume_last_updated
,p_second_passport_exists => l_second_passport_exists
,p_student_status => l_student_status
,p_work_schedule => l_work_schedule
,p_rehire_reason => l_rehire_reason
,p_benefit_group_id => l_benefit_group_id
,p_receipt_of_death_cert_date => l_receipt_of_death_cert_date
,p_coord_ben_med_pln_no => l_coord_ben_med_pln_no
,p_coord_ben_no_cvg_flag => l_coord_ben_no_cvg_flag
,p_uses_tobacco_flag => l_uses_tobacco_flag
,p_dpdnt_adoption_date => l_dpdnt_adoption_date
,p_dpdnt_vlntry_svce_flag => l_dpdnt_vlntry_svce_flag
,p_original_date_of_hire => l_original_date_of_hire
,p_town_of_birth => l_town_of_birth
,p_region_of_birth => l_region_of_birth
,p_country_of_birth => l_country_of_birth
,p_global_person_id => l_global_person_id
,p_effective_start_date => l_effective_start_date
,p_effective_end_date => l_effective_end_date
,p_full_name => l_full_name
,p_comment_id => l_comment_id
,p_name_combination_warning => l_name_combination_warning
,p_assign_payroll_warning => l_assign_payroll_warning
,p_orig_hire_warning => l_orig_hire_warning);
l_datetrack_update_mode := hr_api.g_correction;
savepoint update_person;
if p_attribute_update_mode = 'ATTRIBUTE_UPDATE' then
-- ------------------------------------------------------------------------
-- step 1: as we are performing an ATTRIBUTE_UPDATE we must determine
-- the initial datetrack mode to use (UPDATE, CORRECTION or
-- UPDATE_CHANGE_INSERT)
--
-- 1.1 - call the person datetrack find_dt_upd_modes to determine
-- all possible allowed datetrack update modes
-- 1.2 - determine the actual datetrack mode to use
-- the logic is as follows;
,p_update => l_update
,p_update_override => l_update_override
,p_update_change_insert => l_update_change_insert);
if l_update then
-- we can do an update
l_datetrack_update_mode := hr_api.g_update;
elsif l_update_change_insert then
-- we can do an update change insert
l_datetrack_update_mode := hr_api.g_update_change_insert;
l_datetrack_update_mode := hr_api.g_correction;
elsif p_attribute_update_mode = 'ATTRIBUTE_CORRECTION' then
-- set lock start date to start of time and the datetrack mode
-- to CORRECTION
l_lck_start_date := hr_api.g_sot;
l_datetrack_update_mode := hr_api.g_correction;
,c_resume_last_updated => csr_cur_fut.resume_last_updated
,c_second_passport_exists => csr_cur_fut.second_passport_exists
,c_student_status => csr_cur_fut.student_status
,c_work_schedule => csr_cur_fut.work_schedule
,c_rehire_reason => csr_cur_fut.rehire_reason
,c_benefit_group_id => csr_cur_fut.benefit_group_id
,c_receipt_of_death_cert_date => csr_cur_fut.receipt_of_death_cert_date
,c_coord_ben_med_pln_no => csr_cur_fut.coord_ben_med_pln_no
,c_coord_ben_no_cvg_flag => csr_cur_fut.coord_ben_no_cvg_flag
,c_uses_tobacco_flag => csr_cur_fut.uses_tobacco_flag
,c_dpdnt_adoption_date => csr_cur_fut.dpdnt_adoption_date
,c_dpdnt_vlntry_svce_flag => csr_cur_fut.dpdnt_vlntry_svce_flag
,c_original_date_of_hire => csr_cur_fut.original_date_of_hire
,c_town_of_birth => csr_cur_fut.town_of_birth
,c_region_of_birth => csr_cur_fut.region_of_birth
,c_country_of_birth => csr_cur_fut.country_of_birth
,c_global_person_id => csr_cur_fut.global_person_id
) then
-- all the attributes have been processed, exit the loop
exit;
if p_attribute_update_mode = 'ATTRIBUTE_CORRECTION' then
-- reset the parameter statuses
hr_dt_attribute_support.reset_parameter_statuses;
,c_resume_last_updated => csr_past.resume_last_updated
,c_second_passport_exists => csr_past.second_passport_exists
,c_student_status => csr_past.student_status
,c_work_schedule => csr_past.work_schedule
,c_rehire_reason => csr_past.rehire_reason
,c_benefit_group_id => csr_past.benefit_group_id
,c_receipt_of_death_cert_date => csr_past.receipt_of_death_cert_date
,c_coord_ben_med_pln_no => csr_past.coord_ben_med_pln_no
,c_coord_ben_no_cvg_flag => csr_past.coord_ben_no_cvg_flag
,c_uses_tobacco_flag => csr_past.uses_tobacco_flag
,c_dpdnt_adoption_date => csr_past.dpdnt_adoption_date
,c_dpdnt_vlntry_svce_flag => csr_past.dpdnt_vlntry_svce_flag
,c_original_date_of_hire => csr_past.original_date_of_hire
,c_town_of_birth => csr_past.town_of_birth
,c_region_of_birth => csr_past.region_of_birth
,c_country_of_birth => csr_past.country_of_birth
,c_global_person_id => csr_past.global_person_id
) then
-- all the attributes have been processed, exit the loop
exit;
rollback to update_person;
end update_person;