728x90
π REGEXP_REPLACE
- μ κ·μν¨ν΄μ ν΄λΉνλ λ¬Έμμ λν΄ λ³νν΄μ£Όλ ν¨μ
- REGXPP_REPALCE(source_char, patten
[, replace_string
[, position
[, occurrence
[, match_param]]]]
)- souce
μλ³Έ λ°μ΄ν°λ₯Ό μλ―Έν©λλ€. 컬λΌλͺ μ΄λ λ¬Έμμ΄μ΄ μ¬ μ μκ³ μ¬ μ μλ λ°μ΄ν° νμ μ CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB, NCLOB μ λλ€. - patten
μ°Ύκ³ μ νλ ν¨ν΄μ μλ―Έν©λλ€. 512λ°μ΄νΈκΉμ§ μ κ·ννμμ μ¬μ©νλ©° λ°μ΄ν° νμ μ CHAR, VARCHAR2, NCHAR, NVARCHAR2κ° μ¬ μ μμ΅λλ€. - replace_string
λ³ννκ³ μ νλ ννμ λλ€. λλ²μ§Έ ν¨ν΄μ μΌμΉνλ λ¬Έμ λλ λ¬Έμμ΄μ μ°Ύμμ μΈλ²μ§Έ λͺ¨μμΌλ‘ λ³ννλΌλ μλ―Έμ λλ€. - position
κ²μ μμ μμΉλ₯Ό μ§μ ν©λλ€. μλ¬΄λ° κ°μ μ£Όμ§ μμ κ²½μ° κΈ°λ³Έκ°μ 1μ λλ€. - occurrence
ν¨ν΄κ³Ό μΌμΉκ° λ°μνλ νμλ₯Ό μλ―Έν©λλ€. 0μ λͺ¨λ κ°μ λ체νκ³ λ€λ₯Έ Nμ΄λΌλ μ«μλ₯Ό μ£Όλ©΄ Nλ²μ§Έ λ°μνλ λ¬Έμμ΄μ λμ ν©λλ€. - match_param
κΈ°λ³Έκ°μΌλ‘ κ²μλλ μ΅μ μ λ°κΏ μ μμ΅λλ€. μΈλΆμ΅μ μ μλμ κ°μ΅λλ€.
c : λμλ¬Έμλ₯Ό ꡬλΆν΄μ κ²μν©λλ€.
i : λμλ¬Έμλ₯Ό ꡬλΆνμ§ μκ³ κ²μν©λλ€.
m : κ²μ 쑰건μ μ¬λ¬μ€λ‘ μ€ μ μμ΅λλ€.
- souce
μμ
π μμ΄λλ₯Ό λ³κ²½νλλ°
- μμ μλ¬Έμ΄κ³ , λ€λ 2~4μ리 μ΄λ€.
- μ΄ κ²½μ°, 2,3μ리μ μ«μλ€μ 4μλ¦¬λ‘ λ³κ²½νκ³ μΆλ€.
- λ³κ²½ν λλ, μμ "0"μΌλ‘ μ±μμ λ³κ²½νλ€.
- λν, μ΄λ―Έ 4μ리μ μ«μλ‘ μ΄λ€μ Έμλ€λ©΄, λ³κ²½νμ§ μλλ€.
- EX) abcd12 --> abcd0012
SELECT B.*, B.ONLY_STR || B.USE_LPAD AS NEW_USER_NAME
FROM
(
SELECT USER_NAME
, REGEXP_REPLACE(A.USER_NAME, '[0-9]') AS ONLY_STR
, REGEXP_REPLACE(A.USER_NAME, '[^0-9]') AS ONLY_NUM
, LPAD(REGEXP_REPLACE(A.USER_NAME, '[^0-9]'), 4, '0') AS USE_LPAD
FROM
(
SELECT USER_NAME FROM TB_TEST
) A
) B ;
// +) μΆκ°
SELECT B.*
, B.ONLY_STR || B.USE_LPAD AS NEW_USER_NAME
, SUBSTR(USER_NAME, 1, LENGTH(USER_NAME) - LENGTH(LAST_NUM)) || LPAD_LAST_NUM AS NEW_USER_NAME2
FROM
(
SELECT USER_NAME
, REGEXP_REPLACE(A.USER_NAME, '[0-9]') AS ONLY_STR
, REGEXP_REPLACE(A.USER_NAME, '[^0-9]') AS ONLY_NUM
, LPAD(REGEXP_REPLACE(A.USER_NAME, '[^0-9]'), 4, '0') AS USE_LPAD
, REGEXP_SUBSTR(A.USER_NAME, '[0-9]+$', 1, 1) AS LAST_NUM
, LPAD(REGEXP_SUBSTR(A.USER_NAME, '[0-9]+$', 1, 1), 4 ,'0') AS LPAD_LAST_NUM
FROM
(
SELECT USER_NAME FROM TB_TEST
) A
) B
+) μΆκ°
π μκ°ν΄λ³΄λκΉ, λ§μ½ μλ¬Έμ΄ μλ μλ¬Έ+μ«μμ λ¬Έμμ΄ + 2~4μ μ«μ λ‘ κ΅¬μ±λμλ€λ©΄?
- κ·Έλμ λ€λ₯Έ λ°©λ²μ λͺ» μ°Ύκ² κ³ , μ΄λ κ² λ§λ€μ΄λ΄€μ.
μΆμ² :
https://neocan.tistory.com/348
https://ms-record.tistory.com/101
κ°λ° 곡λΆλ₯Ό μν λΈλ‘κ·Έ μ λλ€.
μ€λ₯κ° μλ€λ©΄ λκΈλ‘ μλ €μ£ΌμΈμ!
κ°μ¬ν©λλ€.

728x90
'DB > ORACLE' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[ORACLE] ORA-30926 : μλ³Έ ν μ΄λΈμ κ³ μ ν μ§ν©μ κ°μ Έμ¬ μ μμ΅λλ€. (0) | 2023.05.10 |
---|---|
[ORACLE] MERGE INTO (0) | 2023.05.09 |
[ORACLE] νΉμ μμΌμ κΈ°μ€μΌλ‘ μν λ¬μ μ£Όμ°¨ ꡬνκΈ° (0) | 2022.11.17 |
[ORACLE] μ΄λ²λ¬ μ£Όμ°¨λ³ μμμΌμ λ μ§ (0) | 2022.10.14 |
[ORACLE] λ¬λ ₯ κΈ°μ€μΌλ‘ λ§€μ μ μ§Έμ£Ό ν μμΌ μΌμ μΏΌλ¦¬λ‘ κ΅¬νλ λ°©λ² (0) | 2022.10.14 |