Oracle/SQL

오라클 데이터 값에 엔터(ENTER) 값을 찾는 쿼리와 치환하는 방법

EstenPark 2015. 5. 15. 15:57

데이터의 값이 엔터가 들어간 문자를 찾기 위해서 테이블을 생성하고, 엔터가 들어가지 않은 데이터와 엔터가 들어간 데이터를 삽입하여 조회 후 엔터를 제거하는 쿼리를 나열 하겠습니다.

 

1. 테이블 생성

 

2. 데이터 생성

  • USER_ID를 동일한 값을 지정하는 이유는 마지막에 치환할 때 홍길동은 아무런 변화가 없어야 하므로, 유효성 체크를 위해서 입니다. 만약, 아무런 문제가 없는 홍길동을 치환 시켜버린다면 더 큰 문제가 발생 할 수 있으니 테스트는 엔터 없는 데이터와 엔터가 있는 데이터를 치환할 때 문제가 없는지 파악합니다.

 

3. 데이터 확인

 

[결과]

 

4. 엔터(ENTER) 데이터 찾기

  • 데이터 중에서 ENTER가 들어간 문자를 'PWDENTER##!!' 임의의 값으로 변경하고 조회하는 방법 입니다.

5. 엔터(ENTER) 데이터 치환하기

 

5-1. 치환된 결과 확인

 

 

위 내용처럼 오라클 함수를 이용해서 엔터(ENTER)값을 치환할 수 있습니다.

사용되었던 SQL은 아래와 같습니다.

/* 1. 테이블 생성 */

CREATE TABLE ADBANCED_ENTER_TB(USER_ID VARCHAR2(10) NOT NULL

,USER_NM VARCHAR2(50) NOT NULL

)

;

/* 2. 데이터 생성 */

INSERT INTO ADBANCED_ENTER_TB a (A.USER_id, A.user_nm) values('advance01', '홍길동');

 

INSERT INTO ADBANCED_ENTER_TB a (A.USER_id, A.user_nm) values('advance01', '마리

오');

 

/* 4. 엔터(ENTER) 데이터 찾기*/

SELECT A.*

FROM (SELECT A.USER_ID

,A.USER_NM

,REPLACE(

REPLACE(A.USER_NM, CHR(13), '')

,CHR(10), 'PWDENTER##!!'

) AS ENTER_USER_NM

FROM ADBANCED_ENTER_TB A) A

WHERE A.ENTER_USER_NM LIKE '%PWDENTER##!!%'

;

 

/* 5. 엔터(ENTER) 데이터 치환하기 */

UPDATE ADBANCED_ENTER_TB A

SET A.USER_NM = REPLACE(REPLACE(A.USER_NM, CHR(13), ''), CHR(10), '')

WHERE A.USER_ID = 'advance01'

'Oracle > SQL' 카테고리의 다른 글

[SQL] INSERT ALL 쿼리로 부모테이블과 자식테이블 적재 테스트(FK)  (0) 2017.03.23
V$SQLAREA  (0) 2015.04.20