KingbaseES V8R6C4B0021新增加以下Oracle 兼容函数。

一、bin_to_num

Oracle bin_to_num 函数用于将二进制位转换成十进制的数。

1、传入参数

test=# \df bin_to_num
List of functions
Schema | Name | Result data type | Argument data types | Type
--------+------------+------------------+---------------------+------
sys | bin_to_num | numeric | VARIADIC "any" | func

bin_to_num 传入的参数必须是 0 或 1,参数个数不限。

2、使用例子

test=# select bin_to_num(1,1,1,1,1) from dual;
bin_to_num
------------
31
(1 row) test=# select bin_to_num(1,1,1) from dual;
bin_to_num
------------
7
(1 row) test=# select bin_to_num(1,1,1,1,1,0,0,1,1) from dual;
bin_to_num
------------
499
(1 row)

二、regexp_count

1、函数参数

REGEXP_COUNT 返回pattern 在source_char 串中出现的次数。如果未找到匹配,则函数返回0。position 变量告诉Oracle 在源串的什么位置开始搜索。在开始位置之后每出现一次模式,都会使计数结果增加1。

REGEXP_COUNT (source_char, pattern [, position [, match_param]] ) ,其中 match_param 变量支持下面几个值:

  • ‘i’ 用于不区分大小写的匹配
  • ‘c’ 用于区分大小写的匹配
  • ‘n’ 允许句点(.)作为通配符去匹配换行符。如果省略该参数,则句点将不匹配换行符
  • ‘m’ 将源串视为多行。即Oracle 将^和$分别看作源串中任意位置任何行的开始和结束,而不是仅仅看作整个源串的开始或结束。如果省略该参数,则Oracle将源串看作一行。
  • ‘x’ 忽略空格字符。默认情况下,空格字符与自身相匹配。

2、使用例子

test=# select REGEXP_COUNT('GEORge','GE',1,'i')  from DUAL;
regexp_count
--------------
2
(1 row) test=# select REGEXP_COUNT('GEORge','GE',1,'c') from DUAL;
regexp_count
--------------
1
(1 row) test=# select REGEXP_COUNT('abc/36.0dfsdad;',E'/36\.0','1','c');
regexp_count
--------------
1
(1 row) test=# select REGEXP_COUNT('abc/36.0dfsdad;','/36\.0','1','c');
regexp_count
--------------
1
(1 row) --除“;” 外的字符个数
test=# select regexp_count('abc/36.0efgh;ijk','[^;]');
regexp_count
--------------
15
(1 row) test=# select regexp_count('abc/36.0efgh;ijk','[I]');
regexp_count
--------------
0
(1 row)

注意:Oracle 与 KingbaseES 的正则中 match_param 的意义有部分不同导致结果不同。

三、regexp_instr

1、函数参数

REGEXP_INSTR (source_char, pattern [, position [, occurrence [, return_option [, match_parameter ] ] ] ] )

  • source_char 搜索值的字符表达式,可以是任何数据类型CHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB或NCLOB的。
  • pattern 正则表达式
  • position 可选。搜索在字符串中的开始位置。如果省略,则默认为1,这是字符串中的第一个位置。
  • occurrence: 可选。它是模式字符串中的第n个匹配位置。如果省略,默认为1。
  • return_option:可选 指定返回的位置:如果指定0,那么将返回出现的第一个字符的位置,这是默认的;如果指定1,则返回字符之后发生的位置。
  • match_parameter 可选。它允许你修改REGEXP_INSTR功能匹配的行为。

2、使用例子

test=# SELECT REGEXP_INSTR ('World filled with love', 'with', 1, 1, 0, 'i') FROM dual;
regexp_instr
--------------
14
(1 row) test=# SELECT REGEXP_INSTR ('World filled with love', 'with', 1, 1, 1, 'i') FROM dual;
regexp_instr
--------------
18
(1 row) test=# SELECT REGEXP_INSTR ('Itmyhome', 'a|i|o|e|u') from dual;
regexp_instr
--------------
6
(1 row)

新增 Oracle 兼容函数-V8R6C4B0021的更多相关文章

  1. oracle常用函数总结(二)

    之前也有写过“oracle常用函数总结(一)”,为了尽量找全常见oracle函数,笔者特意查找了相关资料来作为参考,下边给大家罗列出来,部分和之前有重复的,希望能帮到大家! 列举了31个函数和1个分组 ...

  2. oracle 高级函数2

    原 oracle 高级函数 2017年08月17日 16:44:19 阅读数:1731 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u013278 ...

  3. oracle 高级函数

    原 oracle 高级函数 2017年08月17日 16:44:19 阅读数:1731 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u013278 ...

  4. oracle add_months函数

    oracle add_months函数 add_months 函数主要是对日期函数进行操作,举例子进行说明 add_months 有两个参数,第一个参数是日期,第二个参数是对日期进行加减的数字(以月为 ...

  5. Oracle to_date()函数的用法

    Oracle to_date()函数的用法 to_date()是Oracle数据库函数的代表函数之一,下文对Oracle to_date()函数的几种用法作了详细的介绍说明,供您参考学习. 在Orac ...

  6. Oracle over函数

    Oracle over函数   SQL code: sql over的作用及用法RANK ( ) OVER ( [query_partition_clause] order_by_clause )DE ...

  7. Oracle常用函数

    前一段时间学习Oracle 时做的学习笔记,整理了一下,下面是分享的Oracle常用函数的部分笔记,以后还会分享其他部分的笔记,请大家批评指正. 1.Oracle 数据库中的to_date()函数的使 ...

  8. Oracle SQL函数

    Oracle将函数大致分为单行函数,聚合函数和分析函数. 单行函数分为字符函数,日期函数,转换函数,数字函数,通用函数,decode函数 一.字符函数 1)大小写控制函数 01.Lower() 全部小 ...

  9. Oracle trunc()函数的用法

    Oracle trunc()函数的用法 /**************日期********************/1.select trunc(sysdate) from dual --2013-0 ...

随机推荐

  1. Java基础-并发篇

    3.1. JAVA 并发知识库 3.2. JAVA 线程实现/创建方式 3.2.1. 继承 Thread 类 ​ Thread 类本质上是实现了 Runnable 接口的一个实例,代表一个线程的实例. ...

  2. Leetcode----<Diving Board LCCI>

    题解如下: public class DivingBoardLCCI { /** * 暴力解法,遍历每一种可能性 时间复杂度:O(2*N) * @param shorter * @param long ...

  3. 如何手动解析vue单文件并预览?

    开头 笔者之前的文章里介绍过一个代码在线编辑预览工具的实现(传送门:快速搭建一个代码在线编辑预览工具),实现了css.html.js的编辑,但是对于demo场景来说,vue单文件也是一个比较好的代码组 ...

  4. IP寻址与规划

    一.IP寻址和子网划分 IP地址的主机部分可被分为三种地址:网络地址.主机地址和定向广播地址. 网络地址是网络号中的第一个地址.它用来将网络内的其他所有网段唯一标识为一个网段或广播域.定向广播地址是网 ...

  5. Elasticsearch面试题

    Elasticsearch面试题 1.Elasticsearch是如何实现master选举的? 1.对所有可以成为master的节点根据nodeId排序,每次选举每个节点都把自己所知道节点排一次序,然 ...

  6. 本地使用 Docker Compose 与 Nestjs 快速构建基于 Dapr 的 Redis 发布/订阅分布式应用

    Dapr(分布式应用程序运行时)介绍 Dapr 是一个可移植的.事件驱动的运行时,它使任何开发人员能够轻松构建出弹性的.无状态和有状态的应用程序,并可运行在云平台或边缘计算中,它同时也支持多种编程语言 ...

  7. JavaScript基本知识点——带你逐步解开JS的神秘面纱

    JavaScript基本知识点--带你逐步解开JS的神秘面纱 在我们前面的文章中已经深入学了HTML和CSS,在网页设计中我们已经有能力完成一个美观的网页框架 但仅仅是网页框架不足以展现出网页的魅力, ...

  8. Spring-03

    1. AOP相关概念 1.1 AOP概念&作用 AOP(Aspect Oriented Programming)是一种思想,面向切面编程 作用:在不修改源码的前提下,在程序运行过程中对方法进行 ...

  9. Maven3 入门到入门

    Maven3 Core Overview Maven是一个项目管理工具,它包含了一个项目对象模型(Project Object Model,POM) ,一组标准集合,一个项目生命周期(Project ...

  10. 解决Windows10、Windows11文件名无法大写的问题

    问题描述: 同一目录下的不同文件有些可以用大写字母做文件名,有些输入大写字母完成后自动变成小写. 甚至同一文件的文件名中的相同字母也会有这种情况,例如:文件名为"bu人BU"的文件 ...