Advertisement
badrulme

f_countchar

Apr 15th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 0.85 KB | None | 0 0
  1. CREATE OR REPLACE FUNCTION f_countchar (p_string VARCHAR2, p_pattern VARCHAR2)
  2.    RETURN NUMBER
  3. IS
  4.    v_counter      NUMBER;
  5.    v_next_index   NUMBER;
  6.    v_string       VARCHAR2 (1000);
  7.    v_pattern      VARCHAR2 (1000);
  8. BEGIN
  9.  IF p_string IS NOT NULL AND p_pattern IS NOT NULL THEN
  10.    v_counter := 0;
  11.    v_next_index := 1;
  12.    v_string := LOWER (p_string);
  13.    v_pattern := LOWER (p_pattern);
  14.  
  15.    FOR i IN 1 .. LENGTH (v_string)
  16.    LOOP
  17.       IF     (LENGTH (v_pattern) <= LENGTH (v_string) - v_next_index + 1)
  18.          AND (SUBSTR (v_string, v_next_index, LENGTH (v_pattern)) = v_pattern
  19.              )
  20.       THEN
  21.          v_counter := v_counter + 1;
  22.       END IF;
  23.  
  24.       v_next_index := v_next_index + 1;
  25.    END LOOP;
  26.    RETURN v_counter;
  27.  ELSE
  28.    RETURN 0;
  29.  END IF;
  30. END;
  31. /
  32.  
  33. SELECT f_countchar('BADRUL ALAM BADRUL ALAM','ALAM') FROM DUAL
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement