티스토리 뷰
최근 회사에서 Oracle 쿼리를 MySQL로 컨버팅 하는 작업을 해야했다.
MySQL은 처음이라 많이 삽질했다. 왜 MySQL은 Oracle의 편리한 기능(함수 또는 펑션)이 거의 없는지...
Connect by 도 없고 REGEXP_ 계열도 없고, TO_NUMBER도 없고...
물론 비슷하게 흉내낼 수 있다. 하지만 여전히 불편함이 많다...
잡설이 길었군...어쨌든... 오라클의 REGEXP_REPLACE 함수를 MYSQL에서 사용하기 위해서
함수(펑션)을 구현해서 사용하자. 함수 생성 후 사용법은 오라클의 것과 동일하다.
======================================================
DELIMITER //
DROP FUNCTION IF EXISTS regexp_replace//
CREATE FUNCTION regexp_replace(original VARCHAR(1000),pattern VARCHAR(1000),replacement VARCHAR(1000))
RETURNS VARCHAR(1000)
DETERMINISTIC
BEGIN
DECLARE temp VARCHAR(1000);
DECLARE ch VARCHAR(1);
DECLARE i INT;
SET i = 1;
SET temp = '';
IF original REGEXP pattern THEN
loop_label: LOOP
IF i > CHAR_LENGTH(original) THEN
LEAVE loop_label;
END IF;
SET ch = SUBSTRING(original,i,1);
IF NOT ch REGEXP pattern THEN
SET temp = CONCAT(temp,ch);
ELSE
SET temp = CONCAT(temp,replacement);
END IF;
SET i=i+1;
END LOOP;n
ELSE
SET temp = original;
END IF;
RETURN temp;
END//
DELIMITER ;
- Total
- Today
- Yesterday
- SSL
- Tomcat
- Eclipse
- AWS KMS
- 자바 정규식
- RegExp
- 휴대폰번호 마스킹
- spring
- AES Encryption
- 이클립스
- jvm특징
- AES Decryption
- 아파치
- 아파치 톰캣 연동
- AES with AWS KMS
- 마스킹
- redissonclient
- 스프링
- apache
- 톰캣
- 클래스로더
- STS
- Java
- 오라클
- commit
- redisson
- AES 복호화
- svn
- AES 암호화
- Oracle
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |