[오라클] 내장함수 REPLACE를 프로시저로 구현
간혹 재능판매 사이트에서 재능 판매를 하는데 요청 들어온 문제를 풀겸 만들어보았다. 세세한 디테일까지는 없고 간단하게 만든 프로시저...현실에서는 그냥 내장함수가 짱이다!
실제 REPLACE함수가 저렇게 돌진 않을 것이다. 더 정교하고 복잡할 것으로 예상하며 저건 짜집기? 같은 느낌이다.
create or replace PROCEDURE REPLACE_PROCEDURE
(
STR VARCHAR, --원본데이터
STR1 VARCHAR, --변경플래그
STR2 VARCHAR -- 변경할 데이터
)
IS
CVAR1 VARCHAR(200);
CTEMP VARCHAR(200);
CLOOP NUMBER;
CRETURN VARCHAR(200);
BEGIN
--SUBSTR을 사용하여 한글자씩 쪼갠후 비교하여 값이 같으면 변경 틀리면 그값을 그대로 씀
CLOOP := 1;
LOOP
CTEMP := SUBSTR(STR, CLOOP, 1);
IF CTEMP = STR1 THEN
CTEMP := STR2;
ELSE
CTEMP := CTEMP;
END IF;
CRETURN := CONCAT(CRETURN, CTEMP);
CLOOP := CLOOP+1;
EXIT WHEN CLOOP > LENGTH(STR);
END LOOP;
dbms_output.put_line(CRETURN);
END REPLACE_PROCEDURE;