DB/ORACLE

[ORACLE] 오라클 특정 문자열 치환/ 특정 문자열(특수문자) 제거(replace)/ ASCII 코드값 찾기

데메즈 2022. 5. 31. 12:00
728x90
반응형

요즘에 기존 운영하던 사이트에 용어사전 페이지를 추가하면서 내가 맡게 됐는데

DB 설계, 구축부터 혼자 하다보니 바쁘긴한데 배우는게 많다

 

 

단어의 뜻 안에 있는 단어를 구별하기 위해서 단어를 '#' 으로 감싸야 하는 작업이 필요했다

 

사용함수 : replace(컬럼명, '찾을문자', '변환문자')

update TERM_DIC set DEFINITION = replace(DEFINITION, '수문조사시설', '#수문조사시설#');

이런 식으로 사용하면 된다

 

 

이때, 문제는 그냥 select 를 하면 ' # '이 같이 나온다는 건데

SELECT
   definition def,
   replace(definition, chr(35), '') deforg
FROM
   TERM_DIC

이때도 ' # ' 을 ''으로 변환해서 조회해주면 된다

 

 

' # ' 을 그대로 넣으면 콘솔창에서는 쿼리가 잘 도는데 소스에서는 ibatis 때문인지 파싱에러가 났다

그래서 아스키코드를 사용해  ' # '을 chr(35)으로 바꾸고 돌려주니 잘 돌아갔다~

 

 

* ASCII코드 찾는 방법

select ascii('#')
from dual;

이렇게 찾을 문자를 ascii() 함수안에 넣어주면 된다

728x90
반응형