【发布时间】:2016-04-21 09:37:16
【问题描述】:
我正在编写一个 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;
/
【问题讨论】:
标签: plsql sqlplus plsqldeveloper stored-functions data-dictionary