783: l_last_value VARCHAR2(240);
784: l_matching_values VARCHAR2(240);
785: l_attribute VARCHAR2(14);
786: seeker_criteria_match_vac_rec g_posting_details_rec_type;
787: matching_values_tbl dbms_sql.varchar2_table;
788:
789: l_posting_details_tab g_posting_details_tab_type;
790: l_message_subject VARCHAR2(240)
791: DEFAULT fnd_message.get_string('PER','IRC_EMAIL_SEEKERS_SUBJECT');
1006: l_counter := l_counter + 1;
1007:
1008: END LOOP;
1009:
1010: -- USE DBMS SQL so that we can parse the SQL once and bind in the criteria many
1011: -- times in the inner loop, saving parse time compared to NDS.
1012: l_cursor := DBMS_SQL.OPEN_CURSOR;
1013:
1014: DBMS_SQL.PARSE (c => l_cursor,
1008: END LOOP;
1009:
1010: -- USE DBMS SQL so that we can parse the SQL once and bind in the criteria many
1011: -- times in the inner loop, saving parse time compared to NDS.
1012: l_cursor := DBMS_SQL.OPEN_CURSOR;
1013:
1014: DBMS_SQL.PARSE (c => l_cursor,
1015: statement => l_sql,
1016: language_flag => dbms_sql.native);
1010: -- USE DBMS SQL so that we can parse the SQL once and bind in the criteria many
1011: -- times in the inner loop, saving parse time compared to NDS.
1012: l_cursor := DBMS_SQL.OPEN_CURSOR;
1013:
1014: DBMS_SQL.PARSE (c => l_cursor,
1015: statement => l_sql,
1016: language_flag => dbms_sql.native);
1017:
1018: --
1012: l_cursor := DBMS_SQL.OPEN_CURSOR;
1013:
1014: DBMS_SQL.PARSE (c => l_cursor,
1015: statement => l_sql,
1016: language_flag => dbms_sql.native);
1017:
1018: --
1019: -- ************************************************************
1020: -- Loop through all the job seekers eligible for an email today
1049: -- And no applicant assignment has ever existed for the vacancy
1050: --dbms_output.put_line(' Processing Search Criteria:'||seeker_criteria_rec.search_criteria_id);
1051:
1052: -- define the posting_content_id column
1053: DBMS_SQL.DEFINE_COLUMN (
1054: c => l_cursor,
1055: position => 1,
1056: column => seeker_criteria_match_vac_rec.posting_content_id);
1057:
1055: position => 1,
1056: column => seeker_criteria_match_vac_rec.posting_content_id);
1057:
1058: -- define the job_title column
1059: DBMS_SQL.DEFINE_COLUMN (
1060: c => l_cursor,
1061: position => 2,
1062: column => seeker_criteria_match_vac_rec.job_title,
1063: column_size => 240);
1062: column => seeker_criteria_match_vac_rec.job_title,
1063: column_size => 240);
1064:
1065: -- define the name column
1066: DBMS_SQL.DEFINE_COLUMN (
1067: c => l_cursor,
1068: position => 3,
1069: column => seeker_criteria_match_vac_rec.name,
1070: column_size => 240);
1069: column => seeker_criteria_match_vac_rec.name,
1070: column_size => 240);
1071:
1072: -- define the object_id column
1073: DBMS_SQL.DEFINE_COLUMN (
1074: c => l_cursor,
1075: position => 4,
1076: column => seeker_criteria_match_vac_rec.object_id);
1077:
1100: dbms_output.put_line(' BINDS match_competence:'||seeker_criteria_rec.match_competence);
1101: */
1102:
1103: -- supply binds (bind by name)
1104: dbms_sql.bind_variable(
1105: l_cursor, 'person_id', seeker_criteria_rec.object_id);
1106: dbms_sql.bind_variable(
1107: l_cursor, 'current_employee', nvl(seeker_criteria_rec.current_employee_flag,'N'));
1108: dbms_sql.bind_variable(
1102:
1103: -- supply binds (bind by name)
1104: dbms_sql.bind_variable(
1105: l_cursor, 'person_id', seeker_criteria_rec.object_id);
1106: dbms_sql.bind_variable(
1107: l_cursor, 'current_employee', nvl(seeker_criteria_rec.current_employee_flag,'N'));
1108: dbms_sql.bind_variable(
1109: l_cursor, 'party_id', seeker_rec.party_id);
1110: dbms_sql.bind_variable(
1104: dbms_sql.bind_variable(
1105: l_cursor, 'person_id', seeker_criteria_rec.object_id);
1106: dbms_sql.bind_variable(
1107: l_cursor, 'current_employee', nvl(seeker_criteria_rec.current_employee_flag,'N'));
1108: dbms_sql.bind_variable(
1109: l_cursor, 'party_id', seeker_rec.party_id);
1110: dbms_sql.bind_variable(
1111: l_cursor, 'employee', seeker_criteria_rec.employee);
1112: dbms_sql.bind_variable(
1106: dbms_sql.bind_variable(
1107: l_cursor, 'current_employee', nvl(seeker_criteria_rec.current_employee_flag,'N'));
1108: dbms_sql.bind_variable(
1109: l_cursor, 'party_id', seeker_rec.party_id);
1110: dbms_sql.bind_variable(
1111: l_cursor, 'employee', seeker_criteria_rec.employee);
1112: dbms_sql.bind_variable(
1113: l_cursor, 'contractor', seeker_criteria_rec.contractor);
1114: dbms_sql.bind_variable(
1108: dbms_sql.bind_variable(
1109: l_cursor, 'party_id', seeker_rec.party_id);
1110: dbms_sql.bind_variable(
1111: l_cursor, 'employee', seeker_criteria_rec.employee);
1112: dbms_sql.bind_variable(
1113: l_cursor, 'contractor', seeker_criteria_rec.contractor);
1114: dbms_sql.bind_variable(
1115: l_cursor, 'travel_percentage', seeker_criteria_rec.travel_percentage);
1116: dbms_sql.bind_variable(
1110: dbms_sql.bind_variable(
1111: l_cursor, 'employee', seeker_criteria_rec.employee);
1112: dbms_sql.bind_variable(
1113: l_cursor, 'contractor', seeker_criteria_rec.contractor);
1114: dbms_sql.bind_variable(
1115: l_cursor, 'travel_percentage', seeker_criteria_rec.travel_percentage);
1116: dbms_sql.bind_variable(
1117: l_cursor, 'salary_currency', seeker_criteria_rec.salary_currency);
1118: dbms_sql.bind_variable(
1112: dbms_sql.bind_variable(
1113: l_cursor, 'contractor', seeker_criteria_rec.contractor);
1114: dbms_sql.bind_variable(
1115: l_cursor, 'travel_percentage', seeker_criteria_rec.travel_percentage);
1116: dbms_sql.bind_variable(
1117: l_cursor, 'salary_currency', seeker_criteria_rec.salary_currency);
1118: dbms_sql.bind_variable(
1119: l_cursor, 'min_salary', seeker_criteria_rec.min_salary);
1120: dbms_sql.bind_variable(
1114: dbms_sql.bind_variable(
1115: l_cursor, 'travel_percentage', seeker_criteria_rec.travel_percentage);
1116: dbms_sql.bind_variable(
1117: l_cursor, 'salary_currency', seeker_criteria_rec.salary_currency);
1118: dbms_sql.bind_variable(
1119: l_cursor, 'min_salary', seeker_criteria_rec.min_salary);
1120: dbms_sql.bind_variable(
1121: l_cursor, 'show_jobs_since', seeker_criteria_rec.show_jobs_since);
1122: dbms_sql.bind_variable(
1116: dbms_sql.bind_variable(
1117: l_cursor, 'salary_currency', seeker_criteria_rec.salary_currency);
1118: dbms_sql.bind_variable(
1119: l_cursor, 'min_salary', seeker_criteria_rec.min_salary);
1120: dbms_sql.bind_variable(
1121: l_cursor, 'show_jobs_since', seeker_criteria_rec.show_jobs_since);
1122: dbms_sql.bind_variable(
1123: l_cursor, 'job_title', seeker_criteria_rec.job_title);
1124: dbms_sql.bind_variable(
1118: dbms_sql.bind_variable(
1119: l_cursor, 'min_salary', seeker_criteria_rec.min_salary);
1120: dbms_sql.bind_variable(
1121: l_cursor, 'show_jobs_since', seeker_criteria_rec.show_jobs_since);
1122: dbms_sql.bind_variable(
1123: l_cursor, 'job_title', seeker_criteria_rec.job_title);
1124: dbms_sql.bind_variable(
1125: l_cursor, 'department', seeker_criteria_rec.department);
1126: dbms_sql.bind_variable(
1120: dbms_sql.bind_variable(
1121: l_cursor, 'show_jobs_since', seeker_criteria_rec.show_jobs_since);
1122: dbms_sql.bind_variable(
1123: l_cursor, 'job_title', seeker_criteria_rec.job_title);
1124: dbms_sql.bind_variable(
1125: l_cursor, 'department', seeker_criteria_rec.department);
1126: dbms_sql.bind_variable(
1127: l_cursor, 'employment_category', seeker_criteria_rec.employment_category);
1128: if seeker_criteria_rec.keywords is null then
1122: dbms_sql.bind_variable(
1123: l_cursor, 'job_title', seeker_criteria_rec.job_title);
1124: dbms_sql.bind_variable(
1125: l_cursor, 'department', seeker_criteria_rec.department);
1126: dbms_sql.bind_variable(
1127: l_cursor, 'employment_category', seeker_criteria_rec.employment_category);
1128: if seeker_criteria_rec.keywords is null then
1129: dbms_sql.bind_variable(
1130: l_cursor, 'keywords', to_char(null));
1125: l_cursor, 'department', seeker_criteria_rec.department);
1126: dbms_sql.bind_variable(
1127: l_cursor, 'employment_category', seeker_criteria_rec.employment_category);
1128: if seeker_criteria_rec.keywords is null then
1129: dbms_sql.bind_variable(
1130: l_cursor, 'keywords', to_char(null));
1131: else
1132: dbms_sql.bind_variable(
1133: l_cursor, 'keywords', irc_query_parser_pkg.query_parser(seeker_criteria_rec.keywords));
1128: if seeker_criteria_rec.keywords is null then
1129: dbms_sql.bind_variable(
1130: l_cursor, 'keywords', to_char(null));
1131: else
1132: dbms_sql.bind_variable(
1133: l_cursor, 'keywords', irc_query_parser_pkg.query_parser(seeker_criteria_rec.keywords));
1134: end if;
1135: dbms_sql.bind_variable(
1136: l_cursor, 'work_at_home', seeker_criteria_rec.work_at_home);
1131: else
1132: dbms_sql.bind_variable(
1133: l_cursor, 'keywords', irc_query_parser_pkg.query_parser(seeker_criteria_rec.keywords));
1134: end if;
1135: dbms_sql.bind_variable(
1136: l_cursor, 'work_at_home', seeker_criteria_rec.work_at_home);
1137: dbms_sql.bind_variable(
1138: l_cursor, 'location', seeker_criteria_rec.location);
1139: dbms_sql.bind_variable(
1133: l_cursor, 'keywords', irc_query_parser_pkg.query_parser(seeker_criteria_rec.keywords));
1134: end if;
1135: dbms_sql.bind_variable(
1136: l_cursor, 'work_at_home', seeker_criteria_rec.work_at_home);
1137: dbms_sql.bind_variable(
1138: l_cursor, 'location', seeker_criteria_rec.location);
1139: dbms_sql.bind_variable(
1140: l_cursor, 'longitude', seeker_criteria_rec.geometry.sdo_point.x);
1141: dbms_sql.bind_variable(
1135: dbms_sql.bind_variable(
1136: l_cursor, 'work_at_home', seeker_criteria_rec.work_at_home);
1137: dbms_sql.bind_variable(
1138: l_cursor, 'location', seeker_criteria_rec.location);
1139: dbms_sql.bind_variable(
1140: l_cursor, 'longitude', seeker_criteria_rec.geometry.sdo_point.x);
1141: dbms_sql.bind_variable(
1142: l_cursor, 'latitude', seeker_criteria_rec.geometry.sdo_point.y);
1143: dbms_sql.bind_variable(
1137: dbms_sql.bind_variable(
1138: l_cursor, 'location', seeker_criteria_rec.location);
1139: dbms_sql.bind_variable(
1140: l_cursor, 'longitude', seeker_criteria_rec.geometry.sdo_point.x);
1141: dbms_sql.bind_variable(
1142: l_cursor, 'latitude', seeker_criteria_rec.geometry.sdo_point.y);
1143: dbms_sql.bind_variable(
1144: l_cursor, 'distance_to_location', seeker_criteria_rec.distance_to_location);
1145: dbms_sql.bind_variable(
1139: dbms_sql.bind_variable(
1140: l_cursor, 'longitude', seeker_criteria_rec.geometry.sdo_point.x);
1141: dbms_sql.bind_variable(
1142: l_cursor, 'latitude', seeker_criteria_rec.geometry.sdo_point.y);
1143: dbms_sql.bind_variable(
1144: l_cursor, 'distance_to_location', seeker_criteria_rec.distance_to_location);
1145: dbms_sql.bind_variable(
1146: l_cursor, 'location_id', seeker_criteria_rec.location_id);
1147: dbms_sql.bind_variable(
1141: dbms_sql.bind_variable(
1142: l_cursor, 'latitude', seeker_criteria_rec.geometry.sdo_point.y);
1143: dbms_sql.bind_variable(
1144: l_cursor, 'distance_to_location', seeker_criteria_rec.distance_to_location);
1145: dbms_sql.bind_variable(
1146: l_cursor, 'location_id', seeker_criteria_rec.location_id);
1147: dbms_sql.bind_variable(
1148: l_cursor, 'search_criteria_id', seeker_criteria_rec.search_criteria_id);
1149: dbms_sql.bind_variable(
1143: dbms_sql.bind_variable(
1144: l_cursor, 'distance_to_location', seeker_criteria_rec.distance_to_location);
1145: dbms_sql.bind_variable(
1146: l_cursor, 'location_id', seeker_criteria_rec.location_id);
1147: dbms_sql.bind_variable(
1148: l_cursor, 'search_criteria_id', seeker_criteria_rec.search_criteria_id);
1149: dbms_sql.bind_variable(
1150: l_cursor, 'p_ignore_job_age', p_ignore_job_age);
1151: dbms_sql.bind_variable(
1145: dbms_sql.bind_variable(
1146: l_cursor, 'location_id', seeker_criteria_rec.location_id);
1147: dbms_sql.bind_variable(
1148: l_cursor, 'search_criteria_id', seeker_criteria_rec.search_criteria_id);
1149: dbms_sql.bind_variable(
1150: l_cursor, 'p_ignore_job_age', p_ignore_job_age);
1151: dbms_sql.bind_variable(
1152: l_cursor, 'match_qualification', seeker_criteria_rec.match_qualification);
1153: dbms_sql.bind_variable(
1147: dbms_sql.bind_variable(
1148: l_cursor, 'search_criteria_id', seeker_criteria_rec.search_criteria_id);
1149: dbms_sql.bind_variable(
1150: l_cursor, 'p_ignore_job_age', p_ignore_job_age);
1151: dbms_sql.bind_variable(
1152: l_cursor, 'match_qualification', seeker_criteria_rec.match_qualification);
1153: dbms_sql.bind_variable(
1154: l_cursor, 'match_competence', seeker_criteria_rec.match_competence);
1155:
1149: dbms_sql.bind_variable(
1150: l_cursor, 'p_ignore_job_age', p_ignore_job_age);
1151: dbms_sql.bind_variable(
1152: l_cursor, 'match_qualification', seeker_criteria_rec.match_qualification);
1153: dbms_sql.bind_variable(
1154: l_cursor, 'match_competence', seeker_criteria_rec.match_competence);
1155:
1156: for ct in 0..matching_values_tbl.count-1 loop
1157: IF (matching_values_tbl(ct)= 'ATTRIBUTE1')
1154: l_cursor, 'match_competence', seeker_criteria_rec.match_competence);
1155:
1156: for ct in 0..matching_values_tbl.count-1 loop
1157: IF (matching_values_tbl(ct)= 'ATTRIBUTE1')
1158: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE1', lower(seeker_criteria_rec.attribute1));
1159:
1160: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE2')
1161: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE2', lower(seeker_criteria_rec.attribute2));
1162:
1157: IF (matching_values_tbl(ct)= 'ATTRIBUTE1')
1158: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE1', lower(seeker_criteria_rec.attribute1));
1159:
1160: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE2')
1161: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE2', lower(seeker_criteria_rec.attribute2));
1162:
1163: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE3')
1164: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE3', lower(seeker_criteria_rec.attribute3));
1165:
1160: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE2')
1161: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE2', lower(seeker_criteria_rec.attribute2));
1162:
1163: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE3')
1164: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE3', lower(seeker_criteria_rec.attribute3));
1165:
1166: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE4')
1167: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE4', lower(seeker_criteria_rec.attribute4));
1168:
1163: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE3')
1164: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE3', lower(seeker_criteria_rec.attribute3));
1165:
1166: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE4')
1167: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE4', lower(seeker_criteria_rec.attribute4));
1168:
1169: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE5')
1170: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE5', lower(seeker_criteria_rec.attribute5));
1171:
1166: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE4')
1167: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE4', lower(seeker_criteria_rec.attribute4));
1168:
1169: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE5')
1170: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE5', lower(seeker_criteria_rec.attribute5));
1171:
1172: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE6')
1173: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE6', lower(seeker_criteria_rec.attribute6));
1174:
1169: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE5')
1170: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE5', lower(seeker_criteria_rec.attribute5));
1171:
1172: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE6')
1173: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE6', lower(seeker_criteria_rec.attribute6));
1174:
1175: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE7')
1176: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE7', lower(seeker_criteria_rec.attribute7));
1177:
1172: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE6')
1173: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE6', lower(seeker_criteria_rec.attribute6));
1174:
1175: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE7')
1176: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE7', lower(seeker_criteria_rec.attribute7));
1177:
1178: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE8')
1179: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE8', lower(seeker_criteria_rec.attribute8));
1180:
1175: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE7')
1176: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE7', lower(seeker_criteria_rec.attribute7));
1177:
1178: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE8')
1179: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE8', lower(seeker_criteria_rec.attribute8));
1180:
1181: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE9')
1182: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE9', lower(seeker_criteria_rec.attribute9));
1183:
1178: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE8')
1179: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE8', lower(seeker_criteria_rec.attribute8));
1180:
1181: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE9')
1182: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE9', lower(seeker_criteria_rec.attribute9));
1183:
1184: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE10')
1185: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE10', lower(seeker_criteria_rec.attribute10));
1186:
1181: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE9')
1182: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE9', lower(seeker_criteria_rec.attribute9));
1183:
1184: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE10')
1185: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE10', lower(seeker_criteria_rec.attribute10));
1186:
1187: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE11')
1188: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE11', lower(seeker_criteria_rec.attribute11));
1189:
1184: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE10')
1185: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE10', lower(seeker_criteria_rec.attribute10));
1186:
1187: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE11')
1188: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE11', lower(seeker_criteria_rec.attribute11));
1189:
1190: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE12')
1191: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE12', lower(seeker_criteria_rec.attribute12));
1192:
1187: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE11')
1188: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE11', lower(seeker_criteria_rec.attribute11));
1189:
1190: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE12')
1191: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE12', lower(seeker_criteria_rec.attribute12));
1192:
1193: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE13')
1194: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE13', lower(seeker_criteria_rec.attribute13));
1195:
1190: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE12')
1191: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE12', lower(seeker_criteria_rec.attribute12));
1192:
1193: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE13')
1194: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE13', lower(seeker_criteria_rec.attribute13));
1195:
1196: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE14')
1197: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE14', lower(seeker_criteria_rec.attribute14));
1198:
1193: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE13')
1194: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE13', lower(seeker_criteria_rec.attribute13));
1195:
1196: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE14')
1197: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE14', lower(seeker_criteria_rec.attribute14));
1198:
1199: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE15')
1200: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE15', lower(seeker_criteria_rec.attribute15));
1201:
1196: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE14')
1197: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE14', lower(seeker_criteria_rec.attribute14));
1198:
1199: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE15')
1200: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE15', lower(seeker_criteria_rec.attribute15));
1201:
1202: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE16')
1203: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE16', lower(seeker_criteria_rec.attribute16));
1204:
1199: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE15')
1200: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE15', lower(seeker_criteria_rec.attribute15));
1201:
1202: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE16')
1203: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE16', lower(seeker_criteria_rec.attribute16));
1204:
1205: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE17')
1206: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE17', lower(seeker_criteria_rec.attribute17));
1207:
1202: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE16')
1203: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE16', lower(seeker_criteria_rec.attribute16));
1204:
1205: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE17')
1206: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE17', lower(seeker_criteria_rec.attribute17));
1207:
1208: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE18')
1209: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE18', lower(seeker_criteria_rec.attribute18));
1210:
1205: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE17')
1206: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE17', lower(seeker_criteria_rec.attribute17));
1207:
1208: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE18')
1209: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE18', lower(seeker_criteria_rec.attribute18));
1210:
1211: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE19')
1212: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE19', lower(seeker_criteria_rec.attribute19));
1213:
1208: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE18')
1209: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE18', lower(seeker_criteria_rec.attribute18));
1210:
1211: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE19')
1212: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE19', lower(seeker_criteria_rec.attribute19));
1213:
1214: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE20')
1215: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE20', lower(seeker_criteria_rec.attribute20));
1216:
1211: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE19')
1212: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE19', lower(seeker_criteria_rec.attribute19));
1213:
1214: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE20')
1215: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE20', lower(seeker_criteria_rec.attribute20));
1216:
1217: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE21')
1218: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE21', lower(seeker_criteria_rec.attribute21));
1219:
1214: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE20')
1215: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE20', lower(seeker_criteria_rec.attribute20));
1216:
1217: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE21')
1218: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE21', lower(seeker_criteria_rec.attribute21));
1219:
1220: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE22')
1221: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE22', lower(seeker_criteria_rec.attribute22));
1222:
1217: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE21')
1218: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE21', lower(seeker_criteria_rec.attribute21));
1219:
1220: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE22')
1221: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE22', lower(seeker_criteria_rec.attribute22));
1222:
1223: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE23')
1224: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE23', lower(seeker_criteria_rec.attribute23));
1225:
1220: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE22')
1221: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE22', lower(seeker_criteria_rec.attribute22));
1222:
1223: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE23')
1224: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE23', lower(seeker_criteria_rec.attribute23));
1225:
1226: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE24')
1227: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE24', lower(seeker_criteria_rec.attribute24));
1228:
1223: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE23')
1224: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE23', lower(seeker_criteria_rec.attribute23));
1225:
1226: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE24')
1227: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE24', lower(seeker_criteria_rec.attribute24));
1228:
1229: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE25')
1230: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE25', lower(seeker_criteria_rec.attribute25));
1231:
1226: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE24')
1227: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE24', lower(seeker_criteria_rec.attribute24));
1228:
1229: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE25')
1230: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE25', lower(seeker_criteria_rec.attribute25));
1231:
1232: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE26')
1233: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE26', lower(seeker_criteria_rec.attribute26));
1234:
1229: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE25')
1230: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE25', lower(seeker_criteria_rec.attribute25));
1231:
1232: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE26')
1233: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE26', lower(seeker_criteria_rec.attribute26));
1234:
1235: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE27')
1236: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE27', lower(seeker_criteria_rec.attribute27));
1237:
1232: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE26')
1233: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE26', lower(seeker_criteria_rec.attribute26));
1234:
1235: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE27')
1236: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE27', lower(seeker_criteria_rec.attribute27));
1237:
1238: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE28')
1239: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE28', lower(seeker_criteria_rec.attribute28));
1240:
1235: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE27')
1236: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE27', lower(seeker_criteria_rec.attribute27));
1237:
1238: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE28')
1239: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE28', lower(seeker_criteria_rec.attribute28));
1240:
1241: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE29')
1242: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE29', lower(seeker_criteria_rec.attribute29));
1243:
1238: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE28')
1239: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE28', lower(seeker_criteria_rec.attribute28));
1240:
1241: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE29')
1242: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE29', lower(seeker_criteria_rec.attribute29));
1243:
1244: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE30')
1245: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE30', lower(seeker_criteria_rec.attribute30));
1246: END IF;
1241: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE29')
1242: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE29', lower(seeker_criteria_rec.attribute29));
1243:
1244: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE30')
1245: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE30', lower(seeker_criteria_rec.attribute30));
1246: END IF;
1247: end loop;
1248:
1249: -- execute the cursor
1246: END IF;
1247: end loop;
1248:
1249: -- execute the cursor
1250: l_row := DBMS_SQL.EXECUTE (c => l_cursor);
1251:
1252: -- while there is data to fetch
1253: WHILE DBMS_SQL.FETCH_ROWS (c => l_cursor) <> 0
1254: LOOP
1249: -- execute the cursor
1250: l_row := DBMS_SQL.EXECUTE (c => l_cursor);
1251:
1252: -- while there is data to fetch
1253: WHILE DBMS_SQL.FETCH_ROWS (c => l_cursor) <> 0
1254: LOOP
1255: -- define the posting_content_id column
1256: DBMS_SQL.column_value (
1257: c => l_cursor,
1252: -- while there is data to fetch
1253: WHILE DBMS_SQL.FETCH_ROWS (c => l_cursor) <> 0
1254: LOOP
1255: -- define the posting_content_id column
1256: DBMS_SQL.column_value (
1257: c => l_cursor,
1258: position => 1,
1259: value => seeker_criteria_match_vac_rec.posting_content_id);
1260:
1258: position => 1,
1259: value => seeker_criteria_match_vac_rec.posting_content_id);
1260:
1261: -- define the job_title column
1262: DBMS_SQL.column_value (
1263: c => l_cursor,
1264: position => 2,
1265: value => seeker_criteria_match_vac_rec.job_title);
1266:
1264: position => 2,
1265: value => seeker_criteria_match_vac_rec.job_title);
1266:
1267: -- define the name column
1268: DBMS_SQL.column_value (
1269: c => l_cursor,
1270: position => 3,
1271: value => seeker_criteria_match_vac_rec.name);
1272:
1270: position => 3,
1271: value => seeker_criteria_match_vac_rec.name);
1272:
1273: -- define the object_id column
1274: DBMS_SQL.column_value (
1275: c => l_cursor,
1276: position => 4,
1277: value => seeker_criteria_match_vac_rec.object_id);
1278:
1321: -- Catch the exception so that an error doens't cause total failure.
1322: hr_utility.set_location('Problem sending notification to person:'||seeker_rec.person_id,60);
1323: end;
1324: END LOOP;
1325: DBMS_SQL.CLOSE_CURSOR (c => l_cursor);--All done, so clean up!
1326:
1327: --
1328: hr_utility.set_location('Leaving'||l_proc, 80);
1329: EXCEPTION
1351: l_last_value VARCHAR2(240);
1352: l_matching_values VARCHAR2(240);
1353: l_attribute VARCHAR2(14);
1354: seeker_details_rec g_seeker_details_rec_type;
1355: matching_values_tbl dbms_sql.varchar2_table;
1356:
1357: l_recruiter_problem_tab g_recruiter_problem_tab_type;
1358: --
1359: l_message_subject VARCHAR2(300);
1555: ' IS NULL) OR lower(icrit.'||l_attribute||') = :'||lower(l_attribute)||') ';
1556: l_counter := l_counter + 1;
1557:
1558: END LOOP;
1559: -- USE DBMS SQL so that we can parse the SQL once and bind in the criteria many
1560: -- times in the inner loop, saving parse time compared to NDS.
1561:
1562: l_cursor := DBMS_SQL.OPEN_CURSOR;
1563:
1558: END LOOP;
1559: -- USE DBMS SQL so that we can parse the SQL once and bind in the criteria many
1560: -- times in the inner loop, saving parse time compared to NDS.
1561:
1562: l_cursor := DBMS_SQL.OPEN_CURSOR;
1563:
1564: DBMS_SQL.PARSE (c => l_cursor,
1565: statement => l_sql,
1566: language_flag => dbms_sql.native);
1560: -- times in the inner loop, saving parse time compared to NDS.
1561:
1562: l_cursor := DBMS_SQL.OPEN_CURSOR;
1563:
1564: DBMS_SQL.PARSE (c => l_cursor,
1565: statement => l_sql,
1566: language_flag => dbms_sql.native);
1567:
1568:
1562: l_cursor := DBMS_SQL.OPEN_CURSOR;
1563:
1564: DBMS_SQL.PARSE (c => l_cursor,
1565: statement => l_sql,
1566: language_flag => dbms_sql.native);
1567:
1568:
1569: l_base_url := fnd_profile.value('IRC_SUITABLE_SEEKERS_URL');
1570: IF l_base_url IS NULL THEN
1603: hr_utility.set_location('keywords not null', 30);
1604: -- define the posting_content_id column
1605:
1606: -- define the name column
1607: DBMS_SQL.DEFINE_COLUMN (
1608: c => l_cursor,
1609: position => 1,
1610: column => seeker_details_rec.full_name,
1611: column_size => 240);
1610: column => seeker_details_rec.full_name,
1611: column_size => 240);
1612:
1613: -- define the object_id column
1614: DBMS_SQL.DEFINE_COLUMN (
1615: c => l_cursor,
1616: position => 2,
1617: column => seeker_details_rec.person_id);
1618:
1616: position => 2,
1617: column => seeker_details_rec.person_id);
1618:
1619: -- supply binds (bind by name)
1620: dbms_sql.bind_variable(
1621: l_cursor, 'date_registered', l_date_registered);
1622: dbms_sql.bind_variable(
1623: l_cursor, 'internal', l_internal_site);
1624: dbms_sql.bind_variable(
1618:
1619: -- supply binds (bind by name)
1620: dbms_sql.bind_variable(
1621: l_cursor, 'date_registered', l_date_registered);
1622: dbms_sql.bind_variable(
1623: l_cursor, 'internal', l_internal_site);
1624: dbms_sql.bind_variable(
1625: l_cursor, 'external', l_external_site);
1626: dbms_sql.bind_variable(
1620: dbms_sql.bind_variable(
1621: l_cursor, 'date_registered', l_date_registered);
1622: dbms_sql.bind_variable(
1623: l_cursor, 'internal', l_internal_site);
1624: dbms_sql.bind_variable(
1625: l_cursor, 'external', l_external_site);
1626: dbms_sql.bind_variable(
1627: l_cursor, 'posting_content_id', available_vacancy.primary_posting_id);
1628: dbms_sql.bind_variable(
1622: dbms_sql.bind_variable(
1623: l_cursor, 'internal', l_internal_site);
1624: dbms_sql.bind_variable(
1625: l_cursor, 'external', l_external_site);
1626: dbms_sql.bind_variable(
1627: l_cursor, 'posting_content_id', available_vacancy.primary_posting_id);
1628: dbms_sql.bind_variable(
1629: l_cursor, 'vacancy_id', available_vacancy.vacancy_id);
1630: dbms_sql.bind_variable(
1624: dbms_sql.bind_variable(
1625: l_cursor, 'external', l_external_site);
1626: dbms_sql.bind_variable(
1627: l_cursor, 'posting_content_id', available_vacancy.primary_posting_id);
1628: dbms_sql.bind_variable(
1629: l_cursor, 'vacancy_id', available_vacancy.vacancy_id);
1630: dbms_sql.bind_variable(
1631: l_cursor, 'employee', available_vacancy.employee);
1632: dbms_sql.bind_variable(
1626: dbms_sql.bind_variable(
1627: l_cursor, 'posting_content_id', available_vacancy.primary_posting_id);
1628: dbms_sql.bind_variable(
1629: l_cursor, 'vacancy_id', available_vacancy.vacancy_id);
1630: dbms_sql.bind_variable(
1631: l_cursor, 'employee', available_vacancy.employee);
1632: dbms_sql.bind_variable(
1633: l_cursor, 'contractor', available_vacancy.contractor);
1634: dbms_sql.bind_variable(
1628: dbms_sql.bind_variable(
1629: l_cursor, 'vacancy_id', available_vacancy.vacancy_id);
1630: dbms_sql.bind_variable(
1631: l_cursor, 'employee', available_vacancy.employee);
1632: dbms_sql.bind_variable(
1633: l_cursor, 'contractor', available_vacancy.contractor);
1634: dbms_sql.bind_variable(
1635: l_cursor, 'travel_percentage', available_vacancy.travel_percentage);
1636: dbms_sql.bind_variable(
1630: dbms_sql.bind_variable(
1631: l_cursor, 'employee', available_vacancy.employee);
1632: dbms_sql.bind_variable(
1633: l_cursor, 'contractor', available_vacancy.contractor);
1634: dbms_sql.bind_variable(
1635: l_cursor, 'travel_percentage', available_vacancy.travel_percentage);
1636: dbms_sql.bind_variable(
1637: l_cursor, 'salary_currency', available_vacancy.salary_currency);
1638: dbms_sql.bind_variable(
1632: dbms_sql.bind_variable(
1633: l_cursor, 'contractor', available_vacancy.contractor);
1634: dbms_sql.bind_variable(
1635: l_cursor, 'travel_percentage', available_vacancy.travel_percentage);
1636: dbms_sql.bind_variable(
1637: l_cursor, 'salary_currency', available_vacancy.salary_currency);
1638: dbms_sql.bind_variable(
1639: l_cursor, 'max_salary', available_vacancy.max_salary);
1640: dbms_sql.bind_variable(
1634: dbms_sql.bind_variable(
1635: l_cursor, 'travel_percentage', available_vacancy.travel_percentage);
1636: dbms_sql.bind_variable(
1637: l_cursor, 'salary_currency', available_vacancy.salary_currency);
1638: dbms_sql.bind_variable(
1639: l_cursor, 'max_salary', available_vacancy.max_salary);
1640: dbms_sql.bind_variable(
1641: l_cursor, 'business_group_id', available_vacancy.business_group_id);
1642: dbms_sql.bind_variable(
1636: dbms_sql.bind_variable(
1637: l_cursor, 'salary_currency', available_vacancy.salary_currency);
1638: dbms_sql.bind_variable(
1639: l_cursor, 'max_salary', available_vacancy.max_salary);
1640: dbms_sql.bind_variable(
1641: l_cursor, 'business_group_id', available_vacancy.business_group_id);
1642: dbms_sql.bind_variable(
1643: l_cursor, 'employment_category', available_vacancy.employment_category);
1644: if available_vacancy.keywords is null then
1638: dbms_sql.bind_variable(
1639: l_cursor, 'max_salary', available_vacancy.max_salary);
1640: dbms_sql.bind_variable(
1641: l_cursor, 'business_group_id', available_vacancy.business_group_id);
1642: dbms_sql.bind_variable(
1643: l_cursor, 'employment_category', available_vacancy.employment_category);
1644: if available_vacancy.keywords is null then
1645: dbms_sql.bind_variable(
1646: l_cursor, 'keywords', to_char(null));
1641: l_cursor, 'business_group_id', available_vacancy.business_group_id);
1642: dbms_sql.bind_variable(
1643: l_cursor, 'employment_category', available_vacancy.employment_category);
1644: if available_vacancy.keywords is null then
1645: dbms_sql.bind_variable(
1646: l_cursor, 'keywords', to_char(null));
1647: else
1648: dbms_sql.bind_variable(
1649: l_cursor, 'keywords', irc_query_parser_pkg.query_parser(available_vacancy.keywords));
1644: if available_vacancy.keywords is null then
1645: dbms_sql.bind_variable(
1646: l_cursor, 'keywords', to_char(null));
1647: else
1648: dbms_sql.bind_variable(
1649: l_cursor, 'keywords', irc_query_parser_pkg.query_parser(available_vacancy.keywords));
1650: end if;
1651: dbms_sql.bind_variable(
1652: l_cursor, 'professional_area', available_vacancy.professional_area);
1647: else
1648: dbms_sql.bind_variable(
1649: l_cursor, 'keywords', irc_query_parser_pkg.query_parser(available_vacancy.keywords));
1650: end if;
1651: dbms_sql.bind_variable(
1652: l_cursor, 'professional_area', available_vacancy.professional_area);
1653: dbms_sql.bind_variable(
1654: l_cursor, 'work_at_home', available_vacancy.work_at_home);
1655: dbms_sql.bind_variable(
1649: l_cursor, 'keywords', irc_query_parser_pkg.query_parser(available_vacancy.keywords));
1650: end if;
1651: dbms_sql.bind_variable(
1652: l_cursor, 'professional_area', available_vacancy.professional_area);
1653: dbms_sql.bind_variable(
1654: l_cursor, 'work_at_home', available_vacancy.work_at_home);
1655: dbms_sql.bind_variable(
1656: l_cursor, 'location_id', available_vacancy.location_id);
1657: dbms_sql.bind_variable(
1651: dbms_sql.bind_variable(
1652: l_cursor, 'professional_area', available_vacancy.professional_area);
1653: dbms_sql.bind_variable(
1654: l_cursor, 'work_at_home', available_vacancy.work_at_home);
1655: dbms_sql.bind_variable(
1656: l_cursor, 'location_id', available_vacancy.location_id);
1657: dbms_sql.bind_variable(
1658: l_cursor, 'derived_locale', available_vacancy.derived_locale);
1659: if available_vacancy.match_qualification is null then
1653: dbms_sql.bind_variable(
1654: l_cursor, 'work_at_home', available_vacancy.work_at_home);
1655: dbms_sql.bind_variable(
1656: l_cursor, 'location_id', available_vacancy.location_id);
1657: dbms_sql.bind_variable(
1658: l_cursor, 'derived_locale', available_vacancy.derived_locale);
1659: if available_vacancy.match_qualification is null then
1660: dbms_sql.bind_variable(
1661: l_cursor, 'match_qualification', 'N');
1656: l_cursor, 'location_id', available_vacancy.location_id);
1657: dbms_sql.bind_variable(
1658: l_cursor, 'derived_locale', available_vacancy.derived_locale);
1659: if available_vacancy.match_qualification is null then
1660: dbms_sql.bind_variable(
1661: l_cursor, 'match_qualification', 'N');
1662: else
1663: dbms_sql.bind_variable(
1664: l_cursor, 'match_qualification', available_vacancy.match_qualification);
1659: if available_vacancy.match_qualification is null then
1660: dbms_sql.bind_variable(
1661: l_cursor, 'match_qualification', 'N');
1662: else
1663: dbms_sql.bind_variable(
1664: l_cursor, 'match_qualification', available_vacancy.match_qualification);
1665: end if;
1666: dbms_sql.bind_variable(
1667: l_cursor, 'match_competence', available_vacancy.match_competence);
1662: else
1663: dbms_sql.bind_variable(
1664: l_cursor, 'match_qualification', available_vacancy.match_qualification);
1665: end if;
1666: dbms_sql.bind_variable(
1667: l_cursor, 'match_competence', available_vacancy.match_competence);
1668: dbms_sql.bind_variable(
1669: l_cursor, 'min_qual_level', available_vacancy.min_qual_level);
1670: dbms_sql.bind_variable(
1664: l_cursor, 'match_qualification', available_vacancy.match_qualification);
1665: end if;
1666: dbms_sql.bind_variable(
1667: l_cursor, 'match_competence', available_vacancy.match_competence);
1668: dbms_sql.bind_variable(
1669: l_cursor, 'min_qual_level', available_vacancy.min_qual_level);
1670: dbms_sql.bind_variable(
1671: l_cursor, 'max_qual_level', available_vacancy.max_qual_level);
1672:
1666: dbms_sql.bind_variable(
1667: l_cursor, 'match_competence', available_vacancy.match_competence);
1668: dbms_sql.bind_variable(
1669: l_cursor, 'min_qual_level', available_vacancy.min_qual_level);
1670: dbms_sql.bind_variable(
1671: l_cursor, 'max_qual_level', available_vacancy.max_qual_level);
1672:
1673: for ct in 0..matching_values_tbl.count-1 loop
1674: IF (matching_values_tbl(ct)= 'ATTRIBUTE1')
1671: l_cursor, 'max_qual_level', available_vacancy.max_qual_level);
1672:
1673: for ct in 0..matching_values_tbl.count-1 loop
1674: IF (matching_values_tbl(ct)= 'ATTRIBUTE1')
1675: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE1', lower(available_vacancy.attribute1));
1676:
1677: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE2')
1678: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE2', lower(available_vacancy.attribute2));
1679:
1674: IF (matching_values_tbl(ct)= 'ATTRIBUTE1')
1675: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE1', lower(available_vacancy.attribute1));
1676:
1677: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE2')
1678: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE2', lower(available_vacancy.attribute2));
1679:
1680: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE3')
1681: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE3', lower(available_vacancy.attribute3));
1682:
1677: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE2')
1678: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE2', lower(available_vacancy.attribute2));
1679:
1680: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE3')
1681: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE3', lower(available_vacancy.attribute3));
1682:
1683: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE4')
1684: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE4', lower(available_vacancy.attribute4));
1685:
1680: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE3')
1681: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE3', lower(available_vacancy.attribute3));
1682:
1683: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE4')
1684: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE4', lower(available_vacancy.attribute4));
1685:
1686: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE5')
1687: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE5', lower(available_vacancy.attribute5));
1688:
1683: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE4')
1684: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE4', lower(available_vacancy.attribute4));
1685:
1686: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE5')
1687: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE5', lower(available_vacancy.attribute5));
1688:
1689: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE6')
1690: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE6', lower(available_vacancy.attribute6));
1691:
1686: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE5')
1687: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE5', lower(available_vacancy.attribute5));
1688:
1689: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE6')
1690: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE6', lower(available_vacancy.attribute6));
1691:
1692: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE7')
1693: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE7', lower(available_vacancy.attribute7));
1694:
1689: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE6')
1690: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE6', lower(available_vacancy.attribute6));
1691:
1692: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE7')
1693: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE7', lower(available_vacancy.attribute7));
1694:
1695: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE8')
1696: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE8', lower(available_vacancy.attribute8));
1697:
1692: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE7')
1693: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE7', lower(available_vacancy.attribute7));
1694:
1695: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE8')
1696: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE8', lower(available_vacancy.attribute8));
1697:
1698: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE9')
1699: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE9', lower(available_vacancy.attribute9));
1700:
1695: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE8')
1696: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE8', lower(available_vacancy.attribute8));
1697:
1698: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE9')
1699: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE9', lower(available_vacancy.attribute9));
1700:
1701: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE10')
1702: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE10', lower(available_vacancy.attribute10));
1703:
1698: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE9')
1699: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE9', lower(available_vacancy.attribute9));
1700:
1701: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE10')
1702: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE10', lower(available_vacancy.attribute10));
1703:
1704: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE11')
1705: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE11', lower(available_vacancy.attribute11));
1706:
1701: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE10')
1702: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE10', lower(available_vacancy.attribute10));
1703:
1704: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE11')
1705: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE11', lower(available_vacancy.attribute11));
1706:
1707: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE12')
1708: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE12', lower(available_vacancy.attribute12));
1709:
1704: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE11')
1705: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE11', lower(available_vacancy.attribute11));
1706:
1707: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE12')
1708: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE12', lower(available_vacancy.attribute12));
1709:
1710: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE13')
1711: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE13', lower(available_vacancy.attribute13));
1712:
1707: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE12')
1708: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE12', lower(available_vacancy.attribute12));
1709:
1710: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE13')
1711: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE13', lower(available_vacancy.attribute13));
1712:
1713: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE14')
1714: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE14', lower(available_vacancy.attribute14));
1715:
1710: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE13')
1711: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE13', lower(available_vacancy.attribute13));
1712:
1713: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE14')
1714: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE14', lower(available_vacancy.attribute14));
1715:
1716: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE15')
1717: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE15', lower(available_vacancy.attribute15));
1718:
1713: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE14')
1714: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE14', lower(available_vacancy.attribute14));
1715:
1716: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE15')
1717: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE15', lower(available_vacancy.attribute15));
1718:
1719: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE16')
1720: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE16', lower(available_vacancy.attribute16));
1721:
1716: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE15')
1717: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE15', lower(available_vacancy.attribute15));
1718:
1719: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE16')
1720: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE16', lower(available_vacancy.attribute16));
1721:
1722: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE17')
1723: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE17', lower(available_vacancy.attribute17));
1724:
1719: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE16')
1720: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE16', lower(available_vacancy.attribute16));
1721:
1722: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE17')
1723: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE17', lower(available_vacancy.attribute17));
1724:
1725: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE18')
1726: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE18', lower(available_vacancy.attribute18));
1727:
1722: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE17')
1723: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE17', lower(available_vacancy.attribute17));
1724:
1725: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE18')
1726: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE18', lower(available_vacancy.attribute18));
1727:
1728: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE19')
1729: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE19', lower(available_vacancy.attribute19));
1730:
1725: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE18')
1726: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE18', lower(available_vacancy.attribute18));
1727:
1728: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE19')
1729: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE19', lower(available_vacancy.attribute19));
1730:
1731: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE20')
1732: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE20', lower(available_vacancy.attribute20));
1733:
1728: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE19')
1729: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE19', lower(available_vacancy.attribute19));
1730:
1731: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE20')
1732: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE20', lower(available_vacancy.attribute20));
1733:
1734: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE21')
1735: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE21', lower(available_vacancy.attribute21));
1736:
1731: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE20')
1732: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE20', lower(available_vacancy.attribute20));
1733:
1734: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE21')
1735: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE21', lower(available_vacancy.attribute21));
1736:
1737: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE22')
1738: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE22', lower(available_vacancy.attribute22));
1739:
1734: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE21')
1735: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE21', lower(available_vacancy.attribute21));
1736:
1737: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE22')
1738: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE22', lower(available_vacancy.attribute22));
1739:
1740: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE23')
1741: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE23', lower(available_vacancy.attribute23));
1742:
1737: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE22')
1738: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE22', lower(available_vacancy.attribute22));
1739:
1740: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE23')
1741: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE23', lower(available_vacancy.attribute23));
1742:
1743: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE24')
1744: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE24', lower(available_vacancy.attribute24));
1745:
1740: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE23')
1741: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE23', lower(available_vacancy.attribute23));
1742:
1743: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE24')
1744: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE24', lower(available_vacancy.attribute24));
1745:
1746: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE25')
1747: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE25', lower(available_vacancy.attribute25));
1748:
1743: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE24')
1744: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE24', lower(available_vacancy.attribute24));
1745:
1746: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE25')
1747: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE25', lower(available_vacancy.attribute25));
1748:
1749: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE26')
1750: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE26', lower(available_vacancy.attribute26));
1751:
1746: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE25')
1747: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE25', lower(available_vacancy.attribute25));
1748:
1749: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE26')
1750: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE26', lower(available_vacancy.attribute26));
1751:
1752: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE27')
1753: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE27', lower(available_vacancy.attribute27));
1754:
1749: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE26')
1750: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE26', lower(available_vacancy.attribute26));
1751:
1752: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE27')
1753: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE27', lower(available_vacancy.attribute27));
1754:
1755: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE28')
1756: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE28', lower(available_vacancy.attribute28));
1757:
1752: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE27')
1753: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE27', lower(available_vacancy.attribute27));
1754:
1755: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE28')
1756: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE28', lower(available_vacancy.attribute28));
1757:
1758: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE29')
1759: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE29', lower(available_vacancy.attribute29));
1760:
1755: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE28')
1756: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE28', lower(available_vacancy.attribute28));
1757:
1758: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE29')
1759: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE29', lower(available_vacancy.attribute29));
1760:
1761: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE30')
1762: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE30', lower(available_vacancy.attribute30));
1763: END IF;
1758: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE29')
1759: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE29', lower(available_vacancy.attribute29));
1760:
1761: ELSIF (matching_values_tbl(ct)= 'ATTRIBUTE30')
1762: THEN dbms_sql.bind_variable(l_cursor, 'ATTRIBUTE30', lower(available_vacancy.attribute30));
1763: END IF;
1764: end loop;
1765:
1766: -- execute the cursor
1763: END IF;
1764: end loop;
1765:
1766: -- execute the cursor
1767: l_row := DBMS_SQL.EXECUTE (c => l_cursor);
1768:
1769: -- while there is data to fetch
1770: WHILE DBMS_SQL.FETCH_ROWS (c => l_cursor) <> 0
1771: LOOP
1766: -- execute the cursor
1767: l_row := DBMS_SQL.EXECUTE (c => l_cursor);
1768:
1769: -- while there is data to fetch
1770: WHILE DBMS_SQL.FETCH_ROWS (c => l_cursor) <> 0
1771: LOOP
1772: DBMS_SQL.column_value (
1773: c => l_cursor,
1774: position => 1,
1768:
1769: -- while there is data to fetch
1770: WHILE DBMS_SQL.FETCH_ROWS (c => l_cursor) <> 0
1771: LOOP
1772: DBMS_SQL.column_value (
1773: c => l_cursor,
1774: position => 1,
1775: value => seeker_details_rec.full_name);
1776:
1773: c => l_cursor,
1774: position => 1,
1775: value => seeker_details_rec.full_name);
1776:
1777: DBMS_SQL.column_value (
1778: c => l_cursor,
1779: position => 2,
1780: value => seeker_details_rec.person_id);
1781: