`

oracle字符替换

阅读更多

 

select   REGEXP_REPLACE( 'ABC5DD6D ', '5|6', 'x')   x   from   dual;

 

SELECT COUNT(*) FROM dual WHERE REGEXP_LIKE('abcdef','a|x')

 

 

 

Oracle提供了一个字符替换函数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

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

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

可以看到translate函数是以字符为单位逐一替换的,从第二、三个例子可以看出,如果第三个参数to_string的长度小于第二个参数 from_string,那么from_string的后边超出的部分都被替换为空值。从第三、四个例子可见,如果某一个字符多次出现,则以第一次替换的 内容为准。

以此可以实现的一个有用的功能是统计一个字符串中某个字符出现的次数:

select length(translate('expl','x'||'expl','x')) from dual

官方文档10g Release 2 (10.2) B14200-02 提供了一个例子如下:

Examples

The following statement translates a book title into a string that could be used (for example) as a filename. The from_string contains four characters: a space, asterisk, slash, and apostrophe (with an extra apostrophe as the escape character). The to_string contains only three underscores. This leaves the fourth character in the from_string without a corresponding replacement, so apostrophes are dropped from the returned value.

SELECT TRANSLATE('SQL*Plus User''s Guide', ' */''', '___') FROM DUAL;
--------------------
SQL_Plus_Users_Guide

分享到:
评论

相关推荐

    oracle字符串替换

    oracle 字符串 替换 regexp_replace

    Oracle数据库查找替换工具

    Oracle 数据库 查找替换工具 (*目前只支持Oracle) 在整个数据库中查找某个字符串。 支持字符串、CLOB、BLOB字段类型。 支持字符串替换功能。 可定义查找的表、字段、字段类型。 可同时查询多个字符串。

    oracle 多个字符替换实现

    CSDN上的一个网友,需要一个sql语句的解决方案需求是这样的求写oracle多个字符替换(有测试数据)

    Oracle10g自定义聚合函数(字符串拼接)

    * 自定义聚合函数 wmsys.wm_concat 替换办法 * 超大字符串拼接,单个字符串4000、分隔符100... * Oracle11g Release2版本引入了LISTAGG 函数,使得聚集连接字符串变得很容易。并且允许使用我们指定连接串中的字段顺序

    Oracle 数据库查找替换工具

    可以在整个数据库中查找某个字符串。 支持 CHAR,VARCHAR NVARCHAR,CLOB,BLOB字段类型。 可批量查找,批量替换。 http://db.okof.net/dbr/

    字符串替换Replace仅替换第一个字符串匹配项

    代码如下:public static string Replace(string source, string match, string replacement) { char[] sArr = source.ToCharArray(); char[] mArr = match.ToCharArray(); char[] rArr = replacement....

    PHP中利用substr_replace将指定两位置之间的字符替换为*号

    PHP的substr_replace将指定两位置之间的字符替换为*号的代码,需要的朋友可以参考下。

    解决Oracle字符串中包含数字、特殊符号的排序问题

    问题描述:  某小区,需要按照小区、楼栋、单元号、房间号进行排序,但是按照地址描述排序时,因为字符串中包含数字,所以造成了如下的结果, ...返回将(所有出现的)from_str中的每个字符替换为to_str中的

    centos7下Oracle12中文乱码的问题

    替换oracle解压之后的database文件中的filegroup2文件 路径 :database/stage/Components/oracle.jdk/1.6.0.75.0/1/DataFiles

    解决Oracle12C安装中文乱码包

    12C在Linux上中文安装是乱码,将此包下载拷贝到安装文件\database\stage\Components\oracle.jdk\1.6.0.75.0\1\DataFile目录下,替换以前文件即可。

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...

    oracle迁移达梦常见问题汇总

    本文主要结合之前一次oracle迁移达梦的项目,将碰到的问题以及一系列踩过的坑列举出来供大家参考,数据库版本是达梦7。(本文中涉及到的部分对象名已用sch1,tab1等方式替换) 1、整体情况 迁移过程中失败任务数低于5%...

    去除数据中字符串的换行符;解决ETL中字符串换行符;ORACLE|DB2

    - - 去除数据文件中字符串的换行符; - - 使用此工具,必须有明确的行分隔符标记,且换行符标记不可在字符串中出现。否则无法使用,需要修改匹配搜索方式 ### 工具效率: 亲测200M文件5s中完成转换。 ### 使用...

    SqlServer类似正则表达式的字符处理问题

    SQL Serve提供了简单的字符模糊匹配功能,比如:like, ...同一个字符,将其替换为空串,即可计算 declare @text varchar(1000) declare @str varchar(10) set @text = 'ABCBDBE' set @str = 'B' select len(@tex

    oracle面试题

    REPLACE 原来的字符串 要被替换掉的字符串 要替换成的字符串 SOUNDEX 函数返回一个四位字符码 SOUNDEX 函数可用来查找声音相似的字符串但SOUNDEX 函数对数字">对字符串操作的函数 答:ASCII 函数返回字符表达式最...

    MYSQL,SQLSERVER,ORACLE常用的函数

    string 希望被替换的字符或变量 s1 被替换的字符串 s2 要替换的字符串 SQL> select replace('he love you','he','i') from dual; REPLACE('HELOVEYOU','HE','I') ------------------------------ i love you...

    oracle插入字符串数据时字符串中有’单引号问题

    处理方法:判断一下val1,val2中是否含有单引号,若含单引号,则将单引号’替换成两个单引号”。 将字段与字段值组织到一个HashTable中,再抽象出一个组织sql语句的函数getSqlByHashTable(): HashTable ht =new ...

    ORACLE数据库中怎么求除数字、字母之外的非中文字符的正则表达式

    如有如下字段,需将其中除字母、数字、汉字外的其他所有字符替换为空 ‘asdfsad ,,;)()!@123234#$%^&*(我w 是e ? 中国人。./\[]::‘’“”一人’ 最终得到值:asdfsad123234我是中国人一人 select FN_REG_...

    Oracle8i_9i数据库基础

    §1.5.5 Change(替换字符串)命令 34 §1.5.6 Append(追加字符串)命令 34 §1.5.7 Save保存当前缓冲区命令到文件 35 §1.5.8 GET将命令文件读到缓冲区 35 §1.5.9 SPOOL将信息记录到文件中 36 §1.5.10 再运行当前...

Global site tag (gtag.js) - Google Analytics