출처 : 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'로 하나식 매치해서 바꾸는것이다.


+ Recent posts