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분석: 이 명령문은 'abcdefga'의 'abc'를 'wo'로 변환하는 것입니다. 'abc'의 'a'가 'w'에 해당하기 때문입니다. 'wo''이므로 'abcdefga'의 모든 'a'는 'w'로 변환됩니다. 'abc'의 'b'는 'wo'의 'o'에 해당하므로 'abcdefga의 모든 'b' '는 'o'로 변환됩니다. 'abc'의 'c'는 'wo'에 해당 문자가 없으므로 'abcdefga'의 'c'를 모두 삭제합니다. in의 문자는 to의 위치에 해당하는 문자로 변환됩니다. to에서 해당 문자를 찾을 수 없으면 반환 값의 문자가 삭제됩니다.
SQL> select REPLACE('fgsgswsgs', 'sg' ,'eeerrrttt') 返回值 from dual;
REPLACE(char, search_string,replacement_string)
fgeeerrrtttsweeerrrttts반환 값 rrreee예제 2: 🎜rrreee🎜반환 값 🎜rrreee🎜분석: 🎜🎜🎜🎜첫 번째 예에서는 'fgsgswsgs'에 'fk'와 일치하는 문자열이 없으므로, 따라서 , 반환 값은 여전히 'fgsgswsgs'입니다. 🎜🎜🎜🎜두 번째 예에서는 'fgsgswsgs'의 모든 문자열 'sg'가 'eeerrrttt'로 변환됩니다. 🎜🎜🎜🎜요약: 바꾸기와 번역은 모두 대체 함수입니다. 단, 바꾸기는 문자열을 대상으로 하고 번역은 단일 문자를 대상으로 합니다. 🎜🎜추천 튜토리얼: "🎜Oracle Tutorial🎜"🎜
위 내용은 Oracle의 대체 기능은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!