在数据库中,常常会遇到需要处理字符串的情况。如何高效地处理这些字符串是我们所需要关注的问题。在这里,介绍一种非常常用的处理字符串的函数——translate函数。
10年积累的成都做网站、网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计制作后付款的网站建设流程,更有印台免费网站建设让你可以放心的选择与我们合作。
一、translate函数的定义
translate函数是一个用于字符串替换的函数。它能够将字符串中指定的字符用另一组指定的字符进行替换。 translate函数的语法为:
translate(expr,str1,str2)
其中:
expr:需要进行字符串替换的表达式。
str1:需要被替换的字符(或字符)。
str2:替换的字符(或字符),长度必须和str1相等。
二、translate函数的应用
1.将字符串中某些字符替换为其他字符
例如,将“abc”替换为“def”。
SELECT TRANSLATE(‘abcdedcabac’, ‘abc’, ‘def’);
执行结果为:
dedfeddbefd
2.将字符串中的数字替换为字母
这种情况常常出现在需要生成随机字符序列的场景中。
SELECT TRANSLATE(‘1234567890’, ‘0123456789’, ‘abcdefghij’);
执行结果为:
abcdefghij
3.替换多个字符
有些时候我们需要用不同的字符替换字符串中的多个字符。
SELECT TRANSLATE(‘1223’, ‘123’, ‘ABC’);
执行结果为:
AAAC
三、translate函数的原理
translate函数实际上是调用了内置函数replace函数,只不过replace函数是按字节进行替换的,而translate函数是按字符进行替换的。 实现translate函数的步骤如下:
1. 遍历字符集str1,将其中每个字符c1替换为str2中相应的字符c2。如果str1和str2长度不一致,translate函数内部会在str2末尾补充空格,以满足长度要求。
2. 扫描字符串expr,如果字符c出现在str1中,则将其替换为用str2中相应位置的字符c2。
需要注意的是,当str1或str2为空时,translate函数将不会进行任何替换操作。
四、
translate函数可以快速地对字符串进行多个字符的替换操作,而且它比较省内存。但是,需要有两个等长的字符串进行替换,如果要替换多个字符,也需要消耗大量的内存。因此,当我们需要操作大量字符串时需要注意,避免出现内存溢出的情况。
成都网站建设公司-创新互联为您提供网站建设、网站制作、网页设计及定制高端网站建设服务!
oracle中去掉文本中的换行符、回车符、制表符小结
一、特殊符号ascii定义
制表符 chr(9)
换行符 chr(10)
回车符 chr(13)
二、嵌套使用repalce,注意每次只能悉含提交一个符号,如先回车再换行悉乱
select REPLACE(gg, chr(10), ”) from dual
要注意chr(13) | | chr(10) 此类结合使用的情况比较多,回车换行在notepad中是比较好看点的,所以要考虑此种情况
select translate(string,chr(13)||chr(10),’,’) from dual;
1、例子一
create table TEST_1
(
VA VARCHAR2(10),
VB NUMBER(2),
VC VARCHAR2(10),
VD NUMBER(11,2),
VE NUMBER(11,4),
VCL CLOB
);
SQL> select vb,vc,replace(vc,chr(10),”) as TT, translate(vc,chr(10),’,’) from test_1;
VB VCTTTRANSLATE(VC,CHR(10),’,’)
0 Aaaaaaaaa Aaaaaaaaa Aaaaaaaaa
1 Aaaaaaaaa Aaaaaaaaa Aaaaaaaaa
2 大Ba大Babc带 大Ba,b,c带
b
c带
3 CCC
1 DDD
5 AAA
5 AAA
0 AAA
0 AAA
2、例子二
要注意chr(13) | | chr(10) 此类结合使睁陆笑用的情况比较多,回车换行在notepad中是比较好看点的,所以要考虑此种情况
select vb,vc,replace(vc,chr(10),”) as TT, translate(vc,chr(13)||chr(10),’,’) from test_1;
SQL> select vb,vc,replace(vc,chr(10),”) as TT, translate(vc,chr(13)||chr(10),’,’) from test_1;
VB VCTTTRANSLATE(VC,CHR(13)||CHR(10),
0 Aaaaaaaaa Aaaaaaaaa Aaaaaaaaa
1 Aaaaaaaaa Aaaaaaaaa Aaaaaaaaa
2 大Ba大Babc带 大Babc带
b
c带
3 CCC
1 DDD
5 AAA
5 AAA
0 AAA
0 AAA
11 rows selected
三、对于字符大对象的符号处理
对于clob字段中的符号处理,先to_char然后一样的处理
SQL> select to_char(vcl),replace(to_char(vcl),chr(10),”) from test_1;
TO_CHAR(VCL)REPLACE(TO_CHAR(VCL),CHR(10),’
嵌套使用repalce,注意每次只能提交一个符号,如先回车再换行嵌套使用repalce,注意每次只能提交一个符号,如先回车再换行select REPLACE(gg, chr(10), ”) from dualsel
select REPLACE(gg, chr(10), ”) from dual
select translate(string,chr(13)||chr(10),’,’) from dual;
func:
2.2.单记录字符函数
函 数说 明
ASCII返回对应字符的十进制值
CHR给出十进制返回字符
CONCAT 拼接两个字符串,与 ||相同
INITCAT 将字符串的之一个字母变为大写
INSTR找出某个字符串的位置
INSTRB 找出某个字符串的位置和字节数
LENGTH 以字符给出字符串的长度
LENGTHB 以字节给出字符串的长度
LOWER将字符串转换成小写
LPAD使用指定的字符在字符的左边填充
LTRIM在左边裁剪掉指定的字符
RPAD使用指定的字符在字符的右边填充
RTRIM在右边裁剪掉指定的字符
REPLACE 执行字符串搜索和替换
SUBSTR 取字符串的子串
SUBSTRB 取字符串的子串(以字节)
SOUNDEX 返回一个同音字符串
TRANSLATE 执行字符串搜索和替换
TRIM裁剪掉前面或后面的字符串
UPPER将字符串变为大写
NVL以一个值来替换空值
ASCII()
是字符串。返回与指定的字符对应的十进制数。
SQL> select ascii(‘A’) A,ascii(‘a’) a,ascii(‘0’) zero,ascii(‘ ‘) space from dual;
A a ZERO SPACE
–
SQL> select ascii(‘赵’) zhao,length(‘赵’) leng from dual;
ZHAOLENG
1
CHR()
给出整数,返回对应字符。如:
SQL> select chr(54740) zhao,chr(65) chr65 from dual;
ZH C
— –
赵 A
CONCAT(,)
SQL> select concat(‘010-‘,”)||’转23’ 赵元杰 from dual;
赵元杰
—
转23
INITCAP()
返回字符串c并之一个字母变为大写。例如:
SQL> select initcap(‘simth’) upp from dual;
UPP
—–
Simth
INSTR(, > )
在一个字符串中搜索指定的字符,返回发现指定的字符的位置。
C1: 被搜索的字符串
C2: 希望搜索的字符串
I: 搜索的开始位置,缺省是1
J: 出现的位置,缺省是1。
SQL> SELECT INSTR (‘Oracle Training’, ‘ra’, 1, 2) “Instring” FROM DUAL;
Instring
INSTRB(, > )
除了返回的字节外 ,与INSTR相同,
LENGTH( )
返回字符串 c 的长度。
SQL> l
1 select name,length(name),addr,length(addr),sal,length(to_char(sal))
2* from nchar_tst
SQL> /
NAME LENGTH(NAME) ADDRLENGTH(ADDR) SAL LENGTH(TO_CHAR(SAL))
赵元杰 北京市海淀区9999.
LENGTHB( )
以字节返回字符串的字节数。
SQL> select name,lengthb(name),length(name) from nchar_tst;
NAME LENGTHB(NAME)LENGTH(NAME)
赵元杰 3
LOWER ( )
返回字符串并将所有字符变为小写。
SQL> select lower(‘AaBbCcDd’) AaBbCcDd from dual;
AABBCCDD
aabbccdd
UPPER( )
与 LOWER 相反,将给出字符串变为大写。如:
SQL> select upper(‘AaBbCcDd’) AaBbCcDd from dual;
AABBCCDD
AABBCCDD
RPAD 和LPAD(粘贴字符)
RPAD(string,Length)
LPAD(string,Length)
RPAD在列的右边粘贴字符;
LPAD在列的左边粘贴字符。
例 1:
SQL>select RPAD(City,35,’.’),temperature from weather;
RPAD(City,35,’.’)temperature
CLEVELAND……
LOS ANGELES..
…………………….
(即不够 35 个字符用’.’填满)
LTRIM(左截断)RTRIM(右截断) 函数
LTRIM (string )
Left TRIM (左截断)删去左边出现的任何set 字符。
RTRIM (string )
Right TRIM (右截断)删去右边出现的任何set 字符。
例1:
SELECT RTRIM (‘Mother Theresa, The’, ‘The’) “Example of Right
Trimming” FROM DUAL;
Example of Right
—
Mother Theresa,
SUBSTR Substr(string,start)
取子字符串中函数
对字串 (或字段),从 start字符 开始,连续取 count 个字符并返回结果,如果没有指 count
则一直取到尾。
select phone,substr(phone,1,3) || ‘0’ || substr(phone,4)
from telecommunication where master ’中国电信’;
SUBSTRB(string,start)
对字串 (或字段),从 start字节 开始,连续取 count 个字节并返回结果,如果没有指 count
则一直取到尾。
REPLACE (‘string’ )
String: 希望被替换的字符串或变量。
String_in: 被替换字符串。
String_out: 要替换字符串。
SQL> select replace(‘Informaix 中国公司’,’Informaix’,’IBM Informix’)
2 IBM 数据库 from dual;
IBM 数据库
IBM Informix 中国公司
SOUNDEX( )
返回一个与给定的字符串读音相同的字符串(不管拼写是否一样)。
SELECT DPL_NAME FROM DENIED_PARTIES_LIST WHERE
SOUNDEX(DPL_NAME) = SOUNDEX(‘Saddam Hussain’) ;
DPL_NAME
—-
Al Husseni
Sadda Al Sada.
REPLACE (‘string’ )
String:希望被替换的字符串或变量。
String_in: 被替换字符串。
String_out: 要替换字符串。
SELECT REPLACE (‘Oracle’, ‘Or’, ‘Mir’) “Example “ FROM DUAL;
Example
Miracle
TRIM ( FROM )
RIM可以使你对给定的字符串进行裁剪(前面,后面或前后)。
z 如果指定 LEADING, Oracle 从trim_char 中裁剪掉前面的字符;
z 如果指定TRAILING, Oracle 从trim_char 中裁剪掉尾面的字符;
z 如果指定两个都指定或一个都没有给出,Oracle从trim_char 中裁剪掉前面及尾面的字
符;
z 如果不指定 trim_character, 缺省为空格符;
z 如果只指定trim_source, Oracle Oracle从trim_char 中裁剪掉前面及尾面的字符。
例子:将下面字符串中的前面和后面的‘ ‘字符都去掉:
SELECT TRIM (0 FROM) “TRIM Example” FROM DUAL;
TRIM example
—-
语法:TRANSLATE(expr,from,to)
om,to) expr: 代表一串字符,
expr: 代表一串字符,from 与 to 是从左到右一一对应的关系,如果不能对应,则视为空值。
举例:
select translate(‘abcbbaadef’,’ba’,’#@’) from dual (b将被#替代,a将被@替代)
select translate(ab
select translate(‘abcbbaadef’,’bad’,’#@’) from dual (b将被#替代,a将被@替代,d对应的值是空值,将被移走)
因此:结果依次为:@#c##@@def 和@#c##@@ef
替喊如哗换数据中所有回车和换行可以用
replace(column,chr(10))
replace(replace(column,chr(10)),chr(13))
或者利用translate函数。
如果只是替换末尾的回车换郑行行橡橡用rtrim
rtrim(column,chr(10)) –有些系统回车换行就是一个chr(10)
border: 1px dashed red;
solid
为实线;
dashed
为虚线。
margin: 0 auto; ,
margin
后面如果中银裤只有
两个参数
的话,之一个表示 top 和 bottom ,卖简第二个表示 left 和 right 。
因为0 auto,表示上下边界为0,左右则根据宽度自适应相同值(即居中)。
如上图所示,X轴偏移的方法有如下三个
如上图所示,Y轴偏移的方法有如下两个
如上图所示,Y轴偏移的方法有如下一个
注意搏悄:
上述所说的都是X和Y轴的正向偏移,我们也可以给它设置成
负数
,使其往反向偏移,如 transform: translate(-100px) ;即为向x轴的反向(左侧)偏移了100px。
该函数只
接受数字
,不接受类似于”100px“。
如上图所示,X轴缩放的方法有如下两个
如上图所示,Y轴缩放的方法有如下两个
如上图所示,Y轴缩放的方法有如下两个
该函数只接受一个参数,也就是
角度
。
角度可以由以下四种不同的单位类型来定义。
该函数只接受一个参数,也就是角度。
如上图所示,X轴倾斜的方法有如下两个
如上图所示,Y轴倾斜的方法有如下一个
如上图所示,X/Y轴倾斜的方法有如下一个
关于数据库translate函数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
创新互联-老牌IDC、云计算及IT信息化服务领域的服务供应商,业务涵盖IDC(互联网数据中心)服务、云计算服务、IT信息化、AI算力租赁平台(智算云),软件开发,网站建设,咨询热线:028-86922220
本文标题:一文了解数据库translate函数的应用和原理(数据库translate函数)
标题路径:http://www.mswzjz.cn/qtweb/news17/541967.html
攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能