oracle字符/字符串替换

一、语法

repalce(str_source,str1,str2)  把 str_source 中 str1 字符串替换为 str2 字符串,当 str2 为 null 或'' 时,与下个作用相同

replace(str_source,str1)         把str_source 中的 str1 字符串剔除

regexp_replace(str_source,pattern_str,rep_str) 支持正则表达式,用法类似于 replace,但功能更强大

regexp_replace(str_source,pattern_str)   把 str_source 中的 pattern_str 字符串剔除

translate(str_source,chr1,chr2) 以字符为单位,把 str_source 中的 chr1 字符对应替换为 chr2。如果 chr1 比chr2 长,那么在 chr1 中而不在 chr2 中的字符将被剔除,因为没有对应的替换字符。需注意 chr2 不能为 null 或'',否则返回值也为空

REPLACE 函数是用另外一个值来替代串中的某个值。例如,可以用一个匹配数字来替代字母的每一次出现。REPLACE 的格式如下所示:

1.REPLACE ( char, search_string [, replace_string]) 如果没有指定replace_string 变量的值,那么当发现search_string 变量的值时,就将其删除。输入可以为任何字符数据类型——CHAR、VARCHAR2、NCHAR、NVARCHAR2、CLOB或NCLOB。

--------------------------------------------------------------------------------------------------

2、REGEXP_REPLACE 函数在几个方面扩展了REPLACE 函数的功能。它支持在搜索模式中使用正则表达式,也支持本章前面描述的变量,即position、occurrence 和match_parameter,从而可以选择只替代某些匹配的值,或者不区分大小写。

 

 代码如下 复制代码

REGEXP_REPLACE( source_string, pattern 

[, replace_string 

[, position 

[, occurrence 

[, match_parameter ] 

)

除了replace_string,这里所有的变量都已经在本章前面章节作了介绍。replace_string 告诉Oracle 用什么来替代source_string 中与pattern 匹配的部分。occurrence 变量是一个非负整数,它指定操作的次数:如果为0,则所有的匹配项都被替代;如果指定一个正数,则Oracle替代第n 次匹配。

 代码如下 复制代码

1.select REGEXP_SUBSTR (Phone, 
2.'([[:digit:]]{3})-([[:digit:]]{3})-([[:digit:]]{4})' 
3.) "REGEXP_SUBSTR" 
4.from ADDRESS; 
5.REGEXP_SUBST 
6.------------ 
7.213-555-0223 
8.415-555-7530 

实例

SQL> select replace('4683,968,969',',','$') from dual;

REPLACE('4683,968,969',',','$'
------------------------------
4683$968$969

SQL> select to_number('520') from dual;

TO_NUMBER('520')
----------------
 520

------------------------------------------------------------------------------------------------------------

3、一个字符替换函数translate,不同于replace函数的是,translate函数是字符级别的替换,而不是字符串的替换。

其语法如下:

TRANSLATE ( expr , from_string , to_string )

简单的说就是对expr内容,用to_string中的字符逐一替换from_string 中的字符,举例说明如下:

 代码如下 复制代码

SQL> select translate('123456789','456','abc') from dual;

TRANSLATE
---------
123abc789

SQL> select translate('123456789','456','ab') from dual;

TRANSLAT
--------
123ab789

SQL> select translate('123456789','4564','a') from dual;

TRANSLAT
-------
123a789

select translate('abcc123a','abc','-+='),translate('abcc123a','abc','-+'),translate('abcc123a','#abc','#') from dual;

 TRANSLATE('ABCC123A','ABC','-+ TRANSLATE('ABCC123A','ABC','-+ TRANSLATE('ABCC123A','#ABC','#
------------------------------ ------------------------------ ------------------------------

-+==123-                       -+123-                         123
1、用字符'-'、'+'、'='对应替换'a','b','c'字符;

2、'abc'长度为 3,'-+'长度为 2,字符'c'没有对应的字符来替换,因此被剔除掉;

3、剔除掉字符'a'、'b'、'c',translate 有 # 的特殊用法,以 # 开头的表示所有字符

时间: 2024-09-03 16:09:43

oracle字符/字符串替换的相关文章

Oracle截取字符串去掉字段末尾指定长度的字符_oracle

lengthb(string)计算string所占的字节长度:返回字符串的长度,单位是字节 length(string)计算string所占的字符长度:返回字符串的长度,单位是字符 eg: //去掉该字段后面15位字符串 select t.depre_name, substr(t.depre_name, 0, (length(t.depre_name) - 16)) from table t where t.del_flag = '0' [备注]一个汉字在Oracle数据库里占多少字节跟数据库的

字符串替换或截取多个字符

问题描述 字符串替换或截取多个字符 https://control.kochava.com/&click_id={CLICK_ID}&creative_id={CREATE_ID}&device_id={ADID} &device_id_type=adid&device_ver={DEVICE_V}&site_id={PUB_ID} 我要把这个字符串中含有{CLICK_ID}换成8978,{CREATE_ID}换成777,{ADID}换成9888, 我是一个

php 自定字符串中的部分字符进行替换方法

php教程 自定字符串中的部分字符进行替换方法 substr_replace()函数对自定字符串中的部分字符进行替换    语法:substr_replace(str,repl,start,[int length])    语法说明:    str--必选参数,指定要操作的原始字符串    repl--指定替换后的新字符串    start--指定替换字符串的开始位置    length--可选参数,指定返回字符串的长度.    使用substr_replace()函数替换字符串的应用实例: 实

php函数之子字符串替换 str

str_replace - 子字符串替换 [str_replace]mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )php函数str_replace: 返回一个字符串或者数组.该字符串或数组是将 subject 中全部的 search 都被 replace 替换之后的结果. 现在我们所能知道的一些这个函数的用法,如:str_replace("#", &q

用C语言实现字符串替换功能

下面是用C语言实现字符串替换功能的代码: char *replace(char *source, char *sub, char *rep) { char *result; /*pc1 是复制到结果result的扫描指针*/ /*pc2 是扫描 source 的辅助指针*/ /*pc3 寻找子串时,为检查变化中的source是否与子串相等,是指向sub的扫描指针 */ /*找到匹配后,为了复制到结果串,是指向rep的扫描指针*/ char *pc1, *pc2, *pc3; int isourc

字符批量替换程序asp服务器版_应用技巧

**********字符批量替换程序asp服务器版****************** 安装方法:直接把replace.asp文件放在任意的支持asp+FSO的环境中 运行方法:用http://localhost/.../replace.asp访问即可看到程序的效果 此程序的功能主要用来替换文件夹中所有文本文件字符用的. 如:txt.htm.asp.jsp.php.-- 一切的文本文件 div+CSS布局  兼容FF和IE浏览器 ---------目前具有功能------------------

php函数之子字符串替换 str_replace_php技巧

str_replace - 子字符串替换 [str_replace]mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )php函数str_replace: 返回一个字符串或者数组.该字符串或数组是将 subject 中全部的 search 都被 replace 替换之后的结果. 现在我们所能知道的一些这个函数的用法,如:str_replace("#", &q

ASP replace()字符串替换介绍

Replace 函数 返回字符串,其中指定数目的某子字符串被替换为另一个子字符串. Replace(expression, find, replacewith[, compare[, count[, start]]]) 参数 expression 必选项.字符串表达式 包含要替代的子字符串. Find 必选项.被搜索的子字符串. Replacewith 必选项.用于替换的子字符串. Start 可选项.expression 中开始搜索子字符串的位置.如果省略,默认值为 1.在和count 关联时

输出-字符串替换。。。。。

问题描述 字符串替换..... 写出一个程序,接受三个参数,分别是一个字符串和两个字符,然后输出替换字符后的字符串.区分大小写,用C语言 解决方案 #include#includeint main(){ int i=0; char ab; char str[80]={''}; printf(""Enter a stringn""); gets(str); printf(""Enter a character to be replaced and