select replace('aaabbb','b') from dual;
select replace('aaabbb','b','') from dual;
select replace('aaabbb','b','c') from dual;
select TRANSLATE('aaabbb','b','') from dual;
select TRANSLATE('aaabbb','b','c') from dual;
Oracle 中的replace和translate函数 以及关键字过滤2008-11-28 11:15replace(str1,str2,str3)是把str1中的所有str2字符串替换成str3
replace(str1,str2)是把str1 中的所有str2字符串去掉,也就是替换成''
translate
一、语法:
TRANSLATE(string,from_str,to_str)
二、目的
返回将(所有出现的)from_str中的每个字符替换为to_str中的相应字符以后的string。TRANSLATE 是 REPLACE 所提供的功能的一个超集。如果 from_str 比 to_str 长,那么在 from_str 中而不在 to_str 中的额外字符将从 string 中被删除,因为它们没有相应的替换字符。to_str 不能为空。Oracle 将空字符串解释为 NULL,并且如果TRANSLATE 中的任何参数为NULL,那么结果也是 NULL。
三、允许使用的位置
过程性语句和SQL语句。
四、示例
SELECT TRANSLATE('abcdefghij','abcdef','123456') FROM dual;
TRANSLATE (
--------------
123456ghij
SELECT TRANSLATE('abcdefghij','abcdefghij','123456') FROM dual;
TRANSL
----------
123456
translate中有“#”的特殊用法,以#开头的表示所有字符
translate的主要作用是提取,替换字符串,其作用有时候和replace差不多.具体看下面的例子
select translate('liyan4h123ui','#liyanhui','#') from dual
结果:4123
select translate('asadad434323', '#0123456789','#') from dual
结果:asadad
======================================
利用TRANSLATE实现关键字的过滤
有时候需要对一些关键词语进行过滤,直接使用replace的话,可能由于这些关键词语比较多而要嵌套使用,语句也不好写,同时也浪费资源。这种情况其实可以使用TRANSLATE和replace组合使用就能完全达到目的了。
比如要将“深圳”、“北京”等作为关键词语,在显示内容是要将这些词语过滤掉不显示:
--首先使用TRANSLATE将关键词语统一转换成一个特殊的字符串,比如这里的X
SQL> select TRANSLATE('上海北京天津重庆广州深圳武汉','深圳北京','XXXX') from dual;
TRANSLATE('上海北京天津重庆广?
------------------------------
上海XX天津重庆广州XX武汉
--然后用replace将特殊的字符串替换掉。注意:不能用TRANSLATE直接将关键词语直接转换为''字符串
SQL> select replace(TRANSLATE('上海北京天津重庆广州深圳武汉','深圳北京','XXXX'),'X') from dual;
REPLACE(TRANSLATE('上海北京天?
------------------------------
上海天津重庆广州武汉
SQL>
--但是,用TRANSLATE是以一个字符为单位的,只要匹配到都会转换。比如不管“北”和“京”是否连接在一起都会做转换
SQL> select TRANSLATE('上海京天津重庆北广州深圳武汉','深圳北京','XXXX') from dual;
TRANSLATE('上海京天津重庆北广?
------------------------------
上海X天津重庆X广州XX武汉
SQL>
补充:TRANSLATE(string,from,to)转换的两个注意点——
1、转换源字串(from)在目的字串(to)中不存在对应,则转换后被截除
2、转换目的字串(to)不能为'',''在oracle中被视为空值,因此无法匹配而返回为空值
另外,一个汉字作为一个字符还是两个字符进行转换与字符集的设置相关
select TRANSLATE('kkaxksx', 'kx', '12') from dual
结果:11a21s2
没有合适的资源?快使用搜索试试~ 我知道了~
aa.rar_oracle
共72个文件
txt:34个
js:8个
axd:8个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 39 浏览量
2022-09-23
10:15:04
上传
评论
收藏 2.78MB RAR 举报
温馨提示
Oracle数据库常用操作命令,发动反攻放松放松地方是是否
资源推荐
资源详情
资源评论
收起资源包目录
aa.rar (72个子文件)
数据库
oracle
表空间用户名密码.txt 446B
测试小表.txt 319B
Oracle初始口令.txt 153B
oracle数据类型.txt 115B
docs
如何查出两个表不同的记录.txt 626B
oracle日期转换 - java 成长之路 - BlogJava.files
ScriptResource.axd 21KB
ScriptResource(1).axd 82KB
b.gif 43B
1.bmp 5KB
xml.gif 404B
click.htm 2KB
ScriptResource(2).axd 29KB
CAP0CNXH.files
sma6.js 3KB
abg-zh-CN-100c-ffffff.png 1KB
graphics.js 7KB
ShowHidden.js 3KB
WebResource.axd 20KB
JpegImage.jpg 2KB
show_ads.js 50KB
212559.jpg 631B
CAP0CNXH.htm 12KB
style.css 5KB
oracle日期转换 - java 成长之路 - BlogJava.htm 30KB
case when.txt 76B
触发器.txt 907B
函数.txt 209B
oracle常用例子
测试小表.txt 319B
Oracle初始口令.txt 153B
oracle数据类型.txt 115B
docs
如何查出两个表不同的记录.txt 626B
oracle日期转换 - java 成长之路 - BlogJava.files
ScriptResource.axd 21KB
ScriptResource(1).axd 82KB
b.gif 43B
1.bmp 5KB
xml.gif 404B
click.htm 2KB
ScriptResource(2).axd 29KB
CAP0CNXH.files
sma6.js 3KB
abg-zh-CN-100c-ffffff.png 1KB
graphics.js 7KB
ShowHidden.js 3KB
WebResource.axd 20KB
JpegImage.jpg 2KB
show_ads.js 50KB
212559.jpg 631B
CAP0CNXH.htm 12KB
style.css 5KB
oracle日期转换 - java 成长之路 - BlogJava.htm 30KB
case when.txt 76B
触发器.txt 907B
函数.txt 209B
PL_SQL过程块.txt 409B
添加删除字段.txt 526B
游标.txt 735B
建表.txt 131B
存储过程.txt 408B
自动增长.txt 365B
oracle常用.txt 575B
字符串替换.txt 3KB
PL_SQL过程块.txt 409B
添加删除字段.txt 526B
游标.txt 735B
建表.txt 131B
前端补零.txt 272B
存储过程.txt 419B
循环.txt 1007B
oracle.rar 81KB
自动增长.txt 519B
oracle常用.txt 723B
dba_objects.txt 213B
创建表空间和用户.txt 339B
mysql
MySQL 5.1简体中文官方手.chm 2.54MB
共 72 条
- 1
资源评论
小贝德罗
- 粉丝: 71
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功