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
반응형
'DB > ORACLE' 카테고리의 다른 글
[ORACLE] 중복데이터 조회 및 삭제(ROWID, PARTITION BY 사용) (0) | 2022.12.21 |
---|---|
[ORACLE] 같은 테이블에서 자신의 컬럼으로 UPDATE (0) | 2022.11.22 |
[ORACLE] ORA-01578: ORACLE 데이터 블록이 파손되었습니다 (0) | 2022.04.05 |
[ORACLE] ORA-01502: 인덱스 'pk'또는 인덱스 분할영역은 사용할 수 없은 상태입니다. (0) | 2022.02.22 |
[ORACLE] ORA-28002: 1 일안에 비밀번호가 만기 (0) | 2021.11.26 |