Re-sorting a table array.
From: Tom Deseamus <tdeseamus_at_digital-hire.com>
Date: Wed, 15 Mar 2000 09:01:45 -0600
Message-ID: <sBNz4.6664$_P5.1428496_at_news2.mia>
I have created a table type array based on a select statement, then derived a value for an element in that array. Does anyone know how I can re-sort the array based on the new value. I have listed my code below if it helps.
LOOP
end if;
end if;
EXCEPTION
Date: Wed, 15 Mar 2000 09:01:45 -0600
Message-ID: <sBNz4.6664$_P5.1428496_at_news2.mia>
I have created a table type array based on a select statement, then derived a value for an element in that array. Does anyone know how I can re-sort the array based on the new value. I have listed my code below if it helps.
Thanks, Tom
candidate_index := 0;
i := 0;
BEGIN
FOR C IN
(SELECT distinct applicant_id, first_name, last_name, keyskills
FROM search_candidates_view WHERE upper(nvl(first_name, '%')) like upper(v_first_name) AND upper(nvl(last_name, '%')) like upper(v_last_name) AND nvl(years_of_exp, 0) >= to_number(v_years_of_exp) AND upper(nvl(employer_name, '%')) like upper(v_employer_name) AND upper(nvl(degree, '%')) like upper(v_degree) AND upper(nvl(field_of_study, '%')) like upper(v_field_of_study) AND nvl(gpa, 0) >= to_number (v_gpa) AND ( upper(nvl(home_city, '%')) like upper(v_city) or upper(nvl(work_city, '%')) like upper(v_city) ) AND ( upper(nvl(home_state, '%')) like upper(v_state) or upper(nvl(work_state, '%')) like upper(v_state) ) AND ( upper(nvl(home_zip_code, '%')) like upper(v_zip) or upper(nvl(work_zip_code, '%')) like upper(v_zip )) AND upper(nvl(job_title, '%')) like upper(v_job_title) AND ( upper(nvl(keyskills, '%')) like upper(keyskill(1)) OR upper(nvl(keyskills, '%')) like upper(keyskill(2)) OR upper(nvl(keyskills, '%')) like upper(keyskill(3)) OR upper(nvl(keyskills, '%')) like upper(keyskill(4)) OR upper(nvl(keyskills, '%')) like upper(keyskill(5)) OR upper(nvl(keyskills, '%')) like upper(keyskill(6)) OR upper(nvl(keyskills, '%')) like upper(keyskill(7)) OR upper(nvl(keyskills, '%')) like upper(keyskill(8)) OR upper(nvl(keyskills, '%')) like upper(keyskill(9)) OR upper(nvl(keyskills, '%')) like upper(keyskill(10))) AND ( upper(nvl(position_applied_for, '%')) like upper(position(1)) OR upper(nvl(position_applied_for, '%')) like upper(position(2)) OR upper(nvl(position_applied_for, '%')) like upper(position(3)) OR upper(nvl(position_applied_for, '%')) like upper(position(4)) OR upper(nvl(position_applied_for, '%')) like upper(position(5)) OR upper(nvl(position_applied_for, '%')) like upper(position(6)) OR upper(nvl(position_applied_for, '%')) like upper(position(7)) OR upper(nvl(position_applied_for, '%')) like upper(position(8)) OR upper(nvl(position_applied_for, '%')) like upper(position(9)) OR upper(nvl(position_applied_for, '%')) like upper(position(10))) order by last_name)
LOOP
searchitems := 0; hits := 0; if keyskill(1) IS NOT NULL then searchitems := searchitems + 1; if upper(nvl(c.keyskills, '%')) like upper(keyskill(1)) then hits := hits + 1; end if; end if; if keyskill(2) is not null then searchitems := searchitems + 1; if upper(nvl(c.keyskills, '%')) like upper(keyskill(2)) then hits := hits + 1; end if;
end if;
if keyskill(3) is not null and keyskill(3) != keyskill(1) then
searchitems := searchitems + 1; if upper(nvl(c.keyskills, '%')) like upper(keyskill(3)) then hits := hits + 1; end if;
end if;
--htp.print(keyskill(3));
if searchitems = 0 then
hitratio := 100;
else
hitratio := (hits / searchitems) * 100;
end if;
applicantsDataID.EXTEND; i := i+1; applicantsDataID(i).applicant_id := C.applicant_id; applicantsDataID(i).applied_job_id := null; applicantsDataID(i).first_name := C.first_name; applicantsDataID(i).last_name := C.last_name; applicantsDataID(i).score := hitratio; applicantsDataID(i).selected := 0;END LOOP;
EXCEPTION
WHEN OTHERS THEN formSuper.setStatusLine( 'Candidates database search: ' || SQLERRM );END; Received on Wed Mar 15 2000 - 16:01:45 CET