当前位置:  数据库>oracle

Oracle对字符串去空格处理(trim)

    来源: 互联网  发布时间:2017-06-26

    本文导语: 首先便是这Trim函数。Trim 函数具有删除任意指定字符的功能,而去除字符串首尾空格则是trim函数被使用频率最高的一种。语法Trim ( string ) ,参数string:string类型,指定要删除首部和尾部空格的字符串返回值String。函数执行成功...

首先便是这Trim函数。Trim 函数具有删除任意指定字符的功能,而去除字符串首尾空格则是trim函数被使用频率最高的一种。语法Trim ( string ) ,参数string:string类型,指定要删除首部和尾部空格的字符串返回值String。函数执行成功时返回删除了string字符串首部和尾部空格的字符串,发生错误时返回空字符串("")。 如果参数值为null时,会抛出空指针异常。在Oracle中,trim使用的形式多为人rtrim()与ltrim()两种,分别为去除字符串右边空格与去除字符串左边空格。

当然trim的功能不止如此,下面进行细致的介绍,这里我多以去除字符串空格为例。

我们看下trim函数的语法描述:trim( [ {  {leading|trailing|both}  [trim_character]|trim_character}  from] trim_source

1)、不使用任何参数

SQL> select trim('  11  ') aa from dual;

AA
--
11

这是最常见的一种使用方法,都使用默认的参数,默认情况下TRIM会同时删除字符串前后出现的空格。

2)、使用both参数,效果等同于方法一不使用任何参数

SQL> select trim(both from '  11  ') aa from dual;

AA
--
11

“BOTH”参数表示同时去除字符串前后所指定的内容(默认情况下删除空格)。

3)、使用leading与trailing参数

SQL> select trim(leading from '  11  ') aa from dual;

AA
----
11

SQL> select trim(trailing from '  11  ') aa from dual;

AA
-----
  11
从结果中得分隔符'-',可以发现使用leading参数可以去除字符串右端的空格,而trailing参数则可以去除字符串左端的空格。正如oracle提供的rtrim()与ltrim()。

4)、使用trim_character参数

trim_character参数改变了“删除空格”的默认行为。如果想要删除字符串'xxxxWORLDxxxx'前后出现的“x”,“trim_character”参数就派上用场了。

SQL> select trim('x' from 'xxxxWORLDxxxx') aaaaa from dual;

AAAAA
-----
WORLD

trim_character配合“both”、“trailing”和“leading”三个参数使用效果如下,与之前演示类似。看结果,不赘述。

SQL> select trim('x' from 'xxxxWORLDxxxx') aaaaa from dual;

AAAAA
-----
WORLD

SQL> select trim(both 'x' from 'xxxxWORLDxxxx') aaaaa from dual;

AAAAA
-----
WORLD

SQL> select trim(trailing 'x' from 'xxxxWORLDxxxx') aaaaa from dual;

AAAAA
---------
xxxxWORLD

SQL> select trim(leading 'x' from 'xxxxWORLDxxxx') aaaaa from dual;

AAAAA
---------
WORLDxxxx

      必须注意的一点是这里的“trim_character”参数只允许包含一个字符,不支持多字符。trim不能满足我们去除多字符要求,但是我们可以使用rtrim和ltrim来处理。
1)使用rtrim

SQL> select rtrim('ORxxxxWORLDxxxxOR','OR') aaaaa from dual;

AAAAA
---------------
ORxxxxWORLDxxxx
2)使用ltrim

SQL> select ltrim('ORxxxxWORLDxxxxOR','OR') aaaaa from dual;

AAAAA
---------------
xxxxWORLDxxxxOR
3)联合使用RTRIM和LTRIM函数达到我们的目的
SQL> select rtrim(ltrim('ORxxxxWORLDxxxxOR','OR'),'OR') aaaaa from dual;

AAAAA
-------------
xxxxWORLDxxxx

使用rtrim和ltrim函数时的注意事项:“OR”不表示整个“OR”字符串进行匹配,而是发现任意的字符“O”或字符“R”均做删除操作。

      对于trim函数的应用就介绍到,下面介绍一下replace函数,个人觉得replace函数在去空格时更好用。replace 函数用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式。来看下replace函数的语法描述:replace('string_replace1','string_replace2','string_replace3') 

'string_replace1' 待搜索的字符串表达式,string_replace1 可以是字符数据或二进制数据。

'string_replace2' 待查找的字符串表达式,string_replace2 可以是字符数据或二进制数据。

'string_replace3' 替换用的字符串表达式,string_replace3 可以是字符数据或二进制数据。

返回类型,如果 string_replace(1、2 或 3)是支持的字符数据类型之一,则返回字符数据;如果 string_replace(1、2 或 3)是支持的 binary 数据类型之一,则返回二进制数据。

      这里我们依然以去空格为例。

SQL> select replace('  aa  kk  ',' ','') abcd from dual;

ABCD
----
aakk

      与使用trim函数的结果进行对比,我们可以发现,使用replace函数不仅可以去除字符串两端的空格,也可去除字符串内部的空格。

      当然,如果只是要去除字符串两端的空格,使用trim函数效率会更高


    
 
 

您可能感兴趣的文章:

  • Oracle删除带有空格的表
  • oracle中去掉回车换行空格的方法详解
  • Oracle中CHAR类型自动补足空格的问题解决
  • Oracle中SQL语句连接字符串的符号使用介绍
  • Oracle中字符串连接的实现方法
  • 快疯了:怎样从JSP中向Oracle_816中插入LONG型字符串?
  • 向Oracle数据库的CLOB属性插入数据报字符串过长错误
  • oracle使用instr或like方法判断是否包含字符串
  • 我要向oracle中插入大文本,用的是lang类型的字段,但是只能插3000字,再多就抱错,说我字符串过长。谁遇到过此问题?
  • (oracle)如何解决这个很长的sql字符串:(怎样让他转行?)
  • Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
  • 怎样用oracle保存长字符串(4、5千字左右),并用jsp取出?在线给分
  • oracle 字符串转成行
  • Oracle字符串截取
  • 深入分析C#连接Oracle数据库的连接字符串详解
  • Oracle 存储过程总结 二、字符串处理相关函数
  • Oracle 多行记录合并/连接/聚合字符串的几种方法
  • ORACLE常用数值函数、转换函数、字符串函数
  • Oracle to_char 日期转换字符串语句分享
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 在Red Hat Linux 9 和 Oracle 9.2 环境下,如何配制字符集,让Oracle能存入并显示日语里的假名?
  • ORACLE 10G修改字符编码没有超字符集的限制
  • 查询与修改Oracle字符集
  • oracle查看字符集后修改oracle服务端和客户端字符集的步骤
  • oracle截取字符(substr)检索字符位置(instr)示例介绍
  • 关于Oracle BLOB类型,一个String字符怎么写入BLOB字段?
  • Oracle将字符编码从GBK转到UTF8,如何操作比较稳妥?
  • Oracle中字符集的类型决定varchar2的字符长度
  • 安装oracle9的时候字符无法显示??
  • apache通过php的oci函数读取Oracle(字符集ZHS16GBK)时,显示乱码,如何解决?
  • oracle查询不含括号及不含指定字符的方法
  • Linux字符安装oracle
  • 怎么用jsp向oracle8提交长字符(15000字左右)?
  • 查看和修改Oracle服务器端字符集
  • Oracle字符集修改查看方法
  • Linux下字符安装oracle好轻松
  • 如何在RAC环境下修改Oracle字符集
  • Oracle用户密码含特殊字符时登陆失败问题
  • oracle查询字符集语句分享
  • linux下字符安装oracle 10g!最后出现点问题!很急!
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3