字符函数
 
                  更新时间 2025-02-14 10:22:13
                 
 
                    最近更新时间: 2025-02-14 10:22:13
                  
 本页介绍天翼云TeleDB数据库Oracle语法中的字符函数。
 regexp_count
REGEXP_COUNT返回pattern在source_char串中出现的次数。
teledb=#  select REGEXP_COUNT('teledb_pg_teledb_pg','pg') from DUAL;
 regexp_count 
--------------
            2
(1 row)instr
instr函数返回要截取的字符串在源字符串中的位置。
teledb=# select instr('helloworld','l') from dual;
 instr 
-------
     3
(1 row)regexp_substr
- string:需要进行正则处理的字符串。 
- pattern:进行匹配的正则表达式。 
- position:起始位置,从字符串的第几个字符开始正则表达式匹配(默认为1) - 注意 - 字符串最初的位置是1而不是0。 
- occurrence:获取第几个分割出来的组(分割后最初的字符串会按分割的顺序排列成组)。 
- modifier:模式(‘i’不区分大小写进行检索;‘c’区分大小写进行检索。默认为‘c’)针对的是正则表达式里字符大小写的匹配。 
teledb=# SELECT REGEXP_SUBSTR('17,20,23','[^,]+',1,1,'i') AS STR FROM DUAL; 
 str 
-----
 17
(1 row)
teledb=# regexp_replace
regexp_replace(1,2,3,4,5,6)
语法说明:
1:字段 2:替换的字段 3:替换成什么 4:起始位置(默认从1开始) 5:替换的次数(0是无限次) 6:不区分大小写
teledb=# select regexp_replace('teledb_teledb','x','ee',1,1) from dual; 
  regexp_replace  
------------------
 teledbee_teledb
(1 row)
teledb=# nlssort
指定排序规则。
teledb=# create table t_nlssort(f1 integer,f2 varchar2(10));
CREATE TABLE
teledb=# insert into t_nlssort values(1,'天翼云');
INSERT 0 1
teledb=# insert into t_nlssort values(2,'广州');
INSERT 0 1
teledb=# insert into t_nlssort values(3,'中国');
INSERT 0 1
teledb=# SELECT * FROM t_nlssort ORDER BY NLSSORT(f2,'NLS_SORT = SCHINESE_PINYIN_M'); f1 |   f2   
----+--------
  1 | 天翼云
  3 | 中国
  2 | 广州
(3 rows)
teledb=#目前TeleDB只能支持按拼音。
nls_upper
将字符转换为大写。
teledb=# select NLS_UPPER('teledb','nls_sort= SCHINESE_PINYIN_M')  from dual;
 nls_upper 
-----------
 TELEDB
(1 row)
teledb=#nchr
给出一个数字代码,返回其对应字符。
teledb=# select NCHR(116) from dual;
 nchr 
------
 t
(1 row)
teledb=#length
获取字符长度。
teledb=#  select length(1);
 length 
--------
      1
(1 row)
teledb=# select length('teledb');
 length 
--------
      7
(1 row)
teledb=# select length('阿弟'); 
 length 
--------
      2
(1 row)
teledb=# select length(12.12::numeric(10,2));
 length 
--------
      5
(1 row)
teledb=#LENGTHB
返回字符的长度。
teledb=# select LENGTHB('测试') from dual;
 lengthb 
---------
       6
(1 row)
teledb=# select LENGTH('测试') from dual;
 length 
--------
      2
(1 row)
teledb=#