REPLACE 函数是用另外一个值来替代串中的某个值。例如,可以用一个匹配数字来替代字母的每一次出现。REPLACE 的格式如下所示:
- REPLACE?(?char,?search_string?[,?replace_string])?
如果没有指定replace_string 变量的值,那么当发现search_string 变量的值时,就将其删除。输入可以为任何字符数据类型——CHAR、VARCHAR2、NCHAR、NVARCHAR2、CLOB或NCLOB。下面是一个示例:
- REPLACE('GEORGE',?'GE',?'EG')?=?EGOREG ?
- REPLACE('GEORGE',?'GE',?NULL)?=?OR?
如果搜索串的长度不为零,则可以知道搜索串在某个串中出现的次数。首先,计算源串的长度:
- LENGTH('GEORGE')?
然后,计算源串删除搜索串以后的长度:
- LENGTH(REPLACE('GEORGE',?'GE',?NULL))?
接着用搜索串的长度除以两次的长度之差,就可以得到搜索串出现的次数:
- select?LENGTH('GEORGE') ?
- -?LENGTH(REPLACE('GEORGE',?'GE',?NULL)) ?
- / ?
- LENGTH('GE')?AS?Counter ?
- from?DUAL; ?
- COUNTER ?
- -------?
REGEXP_REPLACE 函数在几个方面扩展了REPLACE 函数的功能。它支持