CREATE OR REPLACE FUNCTION LD -- Levenshtein distance ( p_source_string IN VARCHAR2, p_target_string IN VARCHAR2) RETURN NUMBER DETERMINISTICAS v_length_of_source NUMBER := NVL (LENGTH (p_source_string), 0); v_length_of_target NUMBER := NVL (LENGTH (p_target_string), 0); TYPE mytabtype IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; column_to_left mytabtype; current_column mytabtype; v_cost NUMBER := 0; num NUMBER (3);BEGIN IF v_length_of_source = 0 THEN RETURN v_length_of_target; ELSIF v_length_of_target = 0 THEN RETURN v_length_of_source; ELSE IF v_length_of_target > v_length_of_source THEN num := v_length_of_target; ELSE num := v_length_of_source; END IF; FOR j IN 0 .. v_length_of_target LOOP column_to_left (j) := j; END LOOP; FOR i IN 1 .. v_length_of_source