create or replace FUNCTION stfn(varchar_input IN VARCHAR2, shifting_index IN NUMBER DEFAULT NULL)
RETURN VARCHAR2
IS
varchar_output VARCHAR2(255);
inchar_len NUMBER;
temp_char CHAR;
v_shifting_index NUMBER;
BEGIN
IF varchar_input IS NULL
THEN RETURN NULL;
ELSE
IF shifting_index IS NULL
THEN v_shifting_index := 10;
ELSE v_shifting_index :=shifting_index;
END IF;
varchar_output := '';
inchar_len := Length(varchar_input);
FOR Lcntr IN 1..inchar_len
LOOP
temp_char := SubStr(varchar_input, Lcntr, 1);
IF (temp_char NOT IN ('(',')')) THEN
temp_char := Chr(Ascii(temp_char)+v_shifting_index);
END IF;
varchar_output := varchar_output || temp_char;
END LOOP;
END IF;
RETURN varchar_output;
END stfn;