oracle의 대체 함수는 다음과 같습니다. 1. 번역() 함수, 구문 "TRANSLATE(char, from, to)"; 2. 대체() 함수, 구문 "REPLACE(문자열, 검색 값, 대체 값)".
이 튜토리얼의 운영 환경: Windows 7 시스템, Oracle 11g 버전, Dell G3 컴퓨터.
oracle
1.translate
의 함수 바꾸기 바꾸기 및 번역 함수: TRANSLATE(char, from, to)
TRANSLATE(char, from, to)
用法:返回将出现在from中的每个字符替换为to中的相应字符以后的字符串。
若from比to字符串长,那么在from中比to中多出的字符将会被删除。
三个参数中有一个是空,返回值也将是空值。
举例:
SQL> select translate('abcdefga','abc','wo') 返回值 from dual;
返回值
wodefgw
分析:
该语句要将'abcdefga'中的'abc'转换为'wo',由于'abc'中'a'对应'wo'中的'w',故将'abcdefga'中的'a'全部转换成'w';
而'abc'中'b'对应'wo'中的'o',故将'abcdefga'中的'b'全部转换成'o';
'abc'中的'c'在'wo'中没有与之对应的字符,故将'abcdefga'中的'c'全部删除;
简单说来,就是将from中的字符转换为to中与之位置对应的字符,若to中找不到与之对应的字符,返回值中的该字符将会被删除。
在实际的业务中,可以用来删除一些异常数据,比如表a中的一个字段t_no表示电话号码,而电话号码本身应该是一个由数字组成的字符串,为了删除那些含有非数字的异常数据,就用到了translate函数:
SQL> delete from a, where length(translate(trim(a.t_no), '0123456789' || a.t_no, '0123456789')) <> length(trim(a.t_no));
2.replace
语法:REPLACE(char, search_string,replacement_string)
SQL> select REPLACE('fgsgswsgs', 'fk' ,'j') 返回值 from dual;
fgsgswsgs
SQL> select REPLACE('fgsgswsgs', 'sg' ,'eeerrrttt') 返回值 from dual;
REPLACE(char, search_string,replacement_string)
fgeeerrrtttsweeerrrttts
위 내용은 Oracle의 대체 기능은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!