У меня есть скрипт хранимой функции PL/SQL, который я пишу, и у меня возникла проблема.Сравнение нескольких значений из одной таблицы в несколько значений в другую
Мне нужно найти ВСЕ Заявителей, которые обладают ВСЕМИ навыками, необходимыми для задачи и отображают их.
У меня есть метод, когда я индивидуально читаю навыки Абиантанта в строку VARCHAR2
и все навыки, необходимые для другого. Если бы я мог разделить эти строки на отдельные слова, я мог бы сравнить их с LIKE '% <data> %'
.
Как я могу это сделать (или альтернативный метод)?
CREATE OR REPLACE FUNCTION FUBARR(num IN NUMBER) RETURN VARCHAR IS
string_position VARCHAR2(128);
string_applicant VARCHAR2(128);
string_results VARCHAR2(128);
BEGIN
string_position := '';
string_applicant := '';
FOR SKILLS_row IN (SELECT sname FROM SNEEDED WHERE pnumber = num)
LOOP
string_position := string_position || SKILLS_row.sname || ' ';
END LOOP;
FOR EVERYBODY_row IN (SELECT UNIQUE anumber FROM SPOSSESSED ORDER BY anumber)
LOOP
FOR APPLICANTS_row IN (SELECT sname FROM SPOSSESSED WHERE SPOSSESSED.anumber = EVERYBODY_row.anumber)
LOOP
string_applicant := string_applicant || APPLICANTS_row.sname || ' ';
END LOOP;
--DBMS_OUTPUT.PUT_LINE(EVERYBODY_row.anumber || ' ' || string_applicant);
--IF blaah != LIKE BLAh
IF
string_applicant := '';
END LOOP;
--DBMS_OUTPUT.PUT_LINE(string_position);
--RETURN (string_position);
RETURN('help');
END FUBARR;
/