출처 : http://www.cyworld.com/Super_Moses/2947803
- REPLACE 함수
이 함수는 문자열에서 지정한 문자를 다른 문자로 치환한다.
치환될 문자를 지정하지 않으면 해당 문자를 삭제한다.
정의된 문장에서 해당 문자가 발견되면 지정한 문자로 대치한다
아규먼트 char, search_string, replace_string 모두의 데이터타입은 CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB, NCLOB가 올 수 있다.
반환되는 데이터타입은 char의 데이터타입과 같은 형을 반환한다.
첫 아규먼트가 LOB가 아니면 VARCHAR2를, 첫 아규먼트가 LOB이면 CLOB를 반환한다.
【형식】
R-PLACE (char, search_string [, replacement_string] )
【예제】
SQL> select REPLACE('JACK and JUE','J','BL') "Cnages" from dual;
Cnages
----------------------------
BLACK and BLUE
- TRANSLATE 함수 (R-PLACE의 변종)
이 함수는 char 내에 포함된 문자중 from_string에 지정한 모든 각각의 문자를 to_string문자로 각각 변경한다.
【형식】
TRANSLATE ('char','from_string','to_string')
【예제】
SQL> select translate('ababccc','c','d') from dual;
TRANSLA
-------
ababddd
SQL> select translate('2KRW229',
2 '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',
3 '9999999999XXXXXXXXXXXXXXXXXXXXXXXXXX') from dual;
TRANSLA
-------
9XXX999
SQL> select translate('2KRW229',
2 '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ','0123456789')
3 from dual;
TRAN
----
2229
SQL> select TRANSLATE ('SQL*Plus User''s Guide', ' */''','___') from dual;
TRANSLATE('SQL*PLUSUSER''SGUIDE','*/''',
----------------------------------------
SQL_Plus_Users_Guide
- 위의 예제들은 아주 훌륭한 예제들인것 같다.
- 잘 보시고 파악해두면 응용을 여러가지로 할 수 있을것 같다..
-REPLACE와 TRANSLATE의 차이를 쉽게 보여주는 예제
(예제 출처 http://blog.naver.com/yyh30421?Redirect=Log&logNo=40061516180 )
- REPLACE 함수
SQL> SELECT REPLACE('abcdefaacd', 'ab','12') "R-PLACE" FROM DUAL;
R-PLACE
------------
12cdefaacd
TRANSLATE 함수
SQL> SELECT TRANSLATE('abcdefaacd', 'ab','12') "TRANSLATE" FROM DUAL;
TRANSLATE
-----------
12cdef11cd
REPLACE 는 'ab'를 통째로 '12'로 바꾸는것이고
TRANSLATE 는 'a' => '1' , 'b'=>'2'로 하나식 매치해서 바꾸는것이다.
'DataBase > Sql' 카테고리의 다른 글
[Sql] NVL(컬럼명, 0) 대신에 getDouble("컬럼명") 을 사용하자. (0) | 2011.06.21 |
---|---|
[Sql] Oracle - CASE WHEN THEN ELSE END (0) | 2011.02.23 |
[Sql] Oracle - 주민번호로 현재 나이 구하기 (1) | 2011.02.23 |
[Sql] Oracle - TRANSLATE 활용 (0) | 2011.02.23 |
[Sql] Oracle, Mssql, Mysql - 설치및 사용 팁 (0) | 2011.02.17 |