1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| pseudo-code
CREATE FUNCTION F_SPLIT_EXISTS(p_lib1 in varchar2, p_lib2 in varchar2) return number
is
v_retour NUMBER := 0;
v_pos NUMBER;
v_last_pos NUMBER := 1;
begin
LOOP
v_pos := INSTR(p_lib2, ';', v_last_pos);
manque le test pour dernier élément (v_pos sera = NULL)
Faudra penser à sortir de la boucle dans ce cas sinon boucle infinie
IF ';'|| replace(p_lib1,' ', ';') like SUBSTR(p_lib2, v_last_pos, v_pos - v_last_pos)
THEN v_retour := 1; exit;
END IF;
END LOOP;
return v_retour;
end;
SELECT *
FROM banque b, tablebanque tb
WHERE b.id = tb.id
AND F_SPLIT_EXISTS(b.lib, tb.libelleesp) = 1 |