返回顶部
首页 > 资讯 > 精选 >oracle中sql正则怎么写
  • 358
分享到

oracle中sql正则怎么写

2023-07-05 20:07:25 358人浏览 泡泡鱼
摘要

本篇内容介绍了“oracle中sql正则怎么写”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Oracle中使用正则表达式需先使用REGEXP

本篇内容介绍了“oraclesql正则怎么写”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

Oracle中使用正则表达式需先使用REGEXP_LIKE函数来匹配字符串。正则表达式的语法与一般正则表达式相似,但具体的写法也受不同版本的Oracle环境不同。

在Oracle 10g及以下版本中,可以使用POSIX扩展来进行正则匹配

如:

^:匹配字符串的开始位置;
$:匹配字符串的结束位置;
.:匹配任何单个字符;
[ ]:匹配指定集合内的任何字符,如[abc]匹配a、b、c中任意一个字符;
[^ ]:匹配不在指定集合内的任何字符,如[^abc]匹配除a、b、c之外的任意字符;
*:匹配前面的子表达式零次或多次;
+:匹配前面的子表达式一次或多次;
?:匹配前面的子表达式零次或一次;
{n}:n为非负整数,匹配恰好n次;
{n,}:n为非负整数,匹配至少n次;
{n,m}:n和m为非负整数且n<=m,匹配至少n次且至多m次。
例如,可以使用REGEXP_LIKE函数配合正则表达式来查找符合条件的字符串:

SELECT *FROM employeesWHERE REGEXP_LIKE(job_title, '^Sales.*Manager$');

上述SQL查询会查找职位名称以“Sales”开头,且以“Manager”结尾的所有员工数据。

Oracle 11g及以上版本

对于Oracle 11g及以上版本,可以使用更强大的Perl兼容正则表达式(PCRE)来进行匹配
在使用PCRE时,先需要使用REGEXP_REPLACE函数中加入&rsquo;c&rsquo;选项进行匹配,然后再使用相应的正则表达式来实现匹配。

例如,可以使用如下的SQL查询来查找所有包含“John”或“Johnson”的名称:

SELECT *FROM employeesWHERE REGEXP_REPLACE(name, '(John|Johnson)', '*', 1, 0, 'c') != name;

我的实际例子:

SELECT *--DISTINCT CODE,count(1)FROM tableWHERE 1 = 1AND DATA_CATE = 'CPAU'--AND ext_5 LIKE 'ASSM%'AND REGEXP_REPLACE(ext_5, '(ASSM01|PSVA0100)', '*', 1, 0, 'c') != ext_5;AND VALID_FLG = 'Y'

是否走索引

正则表达式的匹配通常需要对目标字符串全文扫描,因此,在大多数情况下,使用正则表达式无法利用数据库索引。也就是说,在使用正则表达式时,往往无法使用索引来优化查询。

例如,假设有一个包含文本的表,其中有一个 text 字段,我们希望查找所有包含“abc”字符的记录。如果使用 LIKE 操作符,可以这样写:

SELECT * FROM table WHERE text LIKE &lsquo;%abc%&rsquo;;
如果 text 字段上有索引,那么这个查询会利用索引优化执行,因为 LIKE 操作符可以使用前缀索引。但是,如果使用正则表达式,查询语句将变为:

SELECT * FROM table WHERE REGEXP_LIKE(text, &lsquo;abc&rsquo;);
在这种情况下,不能使用索引来优化查询,因为 REGEXP_LIKE 函数需要全文扫描才能找到匹配的记录。

虽然正则表达式在某些情况下可能无法使用索引优化,但是可以尽可能地使用模糊查询来代替正则表达式,从而使用索引来优化查询。例如,在上面的例子中,可以使用 LIKE 操作符而不是 REGEXP_LIKE 函数来查询相同的数据。虽然 LIKE 操作符不能使用正则表达式语法,但是它可以使用前缀索引进行优化,可以在满足需求的情况下提高性能。

“oracle中sql正则怎么写”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: oracle中sql正则怎么写

本文链接: https://lsjlt.com/news/355007.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • oracle中sql正则怎么写
    本篇内容介绍了“oracle中sql正则怎么写”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Oracle中使用正则表达式需先使用REGEXP...
    99+
    2023-07-05
  • oracle中sql正则写法详解
    目录在Oracle 10g及以下版本中,可以使用POSIX扩展来进行正则匹配Oracle 11g及以上版本是否走索引Oracle中使用正则表达式需先使用REGEXP_LIKE函数来匹...
    99+
    2023-05-14
    oracle sql 正则 oracle sql 正则怎么写
  • oracle中sql 正则写法详解
    目录在oracle 10g及以下版本中,可以使用POSIX扩展来进行正则匹配Oracle 11g及以上版本是否走索引Oracle中使用正则表达式需先使用REGEXP_LIKE函数来匹配字符串。正则表达式的语法与一般正则表...
    99+
    2023-04-03
    oracle sql 正则 oracle sql 正则怎么写
  • Oracle中正则表达式怎么用
    小编给大家分享一下Oracle中正则表达式怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Oracle使用正则表达式离不开这...
    99+
    2024-04-02
  • notepad怎么写正则表达式
    这篇文章给大家分享的是有关notepad怎么写正则表达式的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。问题描述:这个正则表达式用notepad++怎么写?原文本:<City Name="...
    99+
    2023-06-21
  • Oracle正则表达式怎么用
    这篇文章给大家分享的是有关Oracle正则表达式怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。oracle正则表达式 ORACLE中的支持正则表达式的函数主要有下面四个: ...
    99+
    2024-04-02
  • 正则表达式纯数字怎么写
    可以使用\d表示任意一个数字,使用\d+表示至少一个数字,使用\d{n}表示n个数字,使用\d{n,}表示至少n个数字。正则表达式是...
    99+
    2023-05-25
    正则表达式纯数字 正则表达式
  • 密码的正则表达式怎么写
    本篇内容主要讲解“密码的正则表达式怎么写”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“密码的正则表达式怎么写”吧!正则表达式:密码必须至少包含八个字符、至少包含一个数字、小写和大写的字母以及特殊...
    99+
    2023-07-05
  • oracle怎么写sql语句
    编写 oracle sql 语句需要遵循以下步骤:1. 连接到数据库;2. 选择要检索的列;3. 指定条件(可选);4. 对结果进行排序(可选);5. 限制结果数量(可选);6. 使用聚...
    99+
    2024-04-19
    oracle sql语句 聚合函数
  • 怎么掌握oracle正则表达式
    这篇文章主要介绍“怎么掌握oracle正则表达式”,在日常操作中,相信很多人在怎么掌握oracle正则表达式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么掌握oracle...
    99+
    2024-04-02
  • 正则表达式怎么防止sql注入
    正则表达式防止sql注入的方法:一、使用正则表达式过滤传入的参数,例如:要引入的包:import java.util.regex.*;正则表达式:private String CHECKsql = “^(.+)\\sand\\s(.+)|(...
    99+
    2024-04-02
  • SQL正则表达式及mybatis中使用正则表达式的方法
    小编给大家分享一下SQL正则表达式及mybatis中使用正则表达式的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mysql...
    99+
    2024-04-02
  • linux中awk、正则表达式、正则运算符怎么用
    小编给大家分享一下linux中awk、正则表达式、正则运算符怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!使用awk作为文本处理工具,正则表达式是少不了的。...
    99+
    2023-06-13
  • sql中如何使用正则表达式
    sql中使用正则表达式可通过regexp_like()函数,使用posix语法匹配字符串。常用字符包括锚点字符、字符类和量词。正则表达式可用于在select、where和其他语...
    99+
    2024-05-02
  • oracle中如何使用正则函数
    oracle中如何使用正则函数,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。使用这些函数可以在字符串中搜索字符模式。例如,假设...
    99+
    2024-04-02
  • 在Oracle中使用正则表达式
    目录一、正则表达式:1、REGEXP_LIKE :匹配2、REGEXP_REPLACE :替换3、REGEXP_INSTR :位置4、REGEXP_SUBSTR :提取5、R...
    99+
    2024-04-02
  • Python中怎么使用正则表达式及正则表达式匹配规则是什么
    1 导库import re2 使用模板re_pattern = re.compile(pattern, flags=0) result = re.findall(re_pattern,string)3 说明参数描述pattern匹配的正则表...
    99+
    2023-05-14
    Python
  • MySQL中SQL语句的大小写规则是什么
    这篇文章主要介绍MySQL中SQL语句的大小写规则是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!  SQL 语句的大小写规则与语句组成元素、引用内容和服务器所使用的操作系统有关...
    99+
    2024-04-02
  • linux中正则表达式怎么用
    小编给大家分享一下linux中正则表达式怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!正则表达式就是处理字符串的方法,它以行为单位来进行字符串的处理行为,正...
    99+
    2023-06-13
  • Java中正则表达式怎么用
    这篇文章将为大家详细讲解有关Java中正则表达式怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Java 正则表达式的使用,具体内容如下所示:java.util.regex.Patternjava.u...
    99+
    2023-05-31
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作