17,377
社区成员
发帖
与我相关
我的任务
分享
CREATE OR REPLACE FUNCTION REPLACE_F(S IN VARCHAR2) RETURN VARCHAR2 IS
V_S1 VARCHAR2(32000);
V_RESULT VARCHAR2(32000);
BEGIN
FOR I IN 1 .. REGEXP_COUNT(S, '\{[^{}]+\}') LOOP
V_S1 := REGEXP_SUBSTR(S, '\{[^{}]+\}', 1, I);
IF REGEXP_COUNT(V_S1, '###!') = 0 THEN
V_RESULT := V_RESULT || REGEXP_REPLACE(V_S1, '\{([^{}]+)\}', '\1', 1);
END IF;
END LOOP;
RETURN V_RESULT;
END REPLACE_F;