自定义函数,替换字符串中指定位置的字符

时间:2023-01-24 10:55:51

    我一直不知道到底有没有函数可以实现标题的功能,所以我写了个适合我们业务的。如果大家有更好的,请告诉我。下面是源码:

    

CREATE OR REPLACE FUNCTION REPLACE_POSITION(STR_IN   VARCHAR2,
                                            POSITION INTEGER,
                                            NEW_CHAR VARCHAR2)
/*
    用于替换字符串中指定位置的字符的函数
  */
 RETURN VARCHAR2 IS
  RESULT VARCHAR2(32000);
  STR1   VARCHAR2(32000);
  STR2   VARCHAR2(10);
  STR3   VARCHAR2(32000);
BEGIN
  IF POSITION <= LENGTHB(STR_IN) AND POSITION > 0 THEN
    STR1   := SUBSTR(STR_IN, 1, POSITION - 1);
    STR2   := SUBSTR(STR_IN, POSITION, 1);
    STR3   := SUBSTR(STR_IN, POSITION + 1, LENGTHB(STR_IN));
    STR2   := REPLACE(STR2, STR2, NEW_CHAR);
    RESULT := STR1 || STR2 || STR3;
  ELSE
    RESULT := STR_IN;
  END IF;
  RETURN(RESULT);
END REPLACE_POSITION;