首页 > 数据库 >如何使用Oracle判断是否为数字,使用 REGEXP_LIKE 正则

如何使用Oracle判断是否为数字,使用 REGEXP_LIKE 正则

时间:2023-09-11 10:23:45浏览次数:49  
标签:digit 判断 LIKE 正则表达式 Oracle REGEXP 数字

如何使用Oracle判断是否为数字
原文链接:https://www.python100.com/html/KDO3R3J4S004.html

一、判断是否为数字的方法

在Oracle中,常用的判断是否为数字的方法是使用REGEXP_LIKE函数和正则表达式。

SELECT CASE WHEN REGEXP_LIKE('123', '^[[:digit:]]+$') THEN '是数字' ELSE '不是数字' END AS check_result FROM DUAL;

以上代码会返回结果为“是数字”,因为“123”是由数字组成的字符串。

如果判断的是非数字字符串,如“abc”,则返回结果为“不是数字”。

二、判断负数

有时候需要判断负数是否为数字,可以使用以下正则表达式:

SELECT CASE WHEN REGEXP_LIKE('-123', '^(-)*[[:digit:]]+$') THEN '是数字' ELSE '不是数字' END AS check_result FROM DUAL;

以上正则表达式中的“^”表示起始位置,“(-)*”表示负号可有可无,“[[:digit:]]+”表示一个或多个数字。

三、判断小数

如果需要判断小数是否为数字,可以使用以下正则表达式:

SELECT CASE WHEN REGEXP_LIKE('123.45', '^(-)*[[:digit:]]+(\.[[:digit:]]+)*$') THEN '是数字' ELSE '不是数字' END AS check_result FROM DUAL;

以上正则表达式中的“\.”表示小数点,“(\.[[:digit:]]+)*”表示小数部分可有可无。

四、判断科学计数法表示的数字

有时候数字会使用科学计数法表示,如“1.23E+2”,需要使用以下正则表达式:

SELECT CASE WHEN REGEXP_LIKE('1.23E+2', '^(-)*[[:digit:]]+(\.[[:digit:]]+)*([Ee][+-]?[[:digit:]]+)*$') THEN '是数字' ELSE '不是数字' END AS check_result FROM DUAL;

以上正则表达式中的“([Ee][+-]?[[:digit:]]+)*”表示指数可有可无,其中[Ee]表示指数符号,“[+-]?”表示正负号可有可无,“[[:digit:]]+”表示一个或多个数字。

五、判断有效数字

在实际业务中,可能需要判断有效数字(即带有特定格式的数字),如身份证号码、银行卡号等。此时可以根据具体的格式进行判断,以下是判断身份证号码是否为数字的例子:

SELECT CASE WHEN REGEXP_LIKE('11010119800101001X', '^[[:digit:]]{17}([[:digit:]]|X)$') THEN '是数字' ELSE '不是数字' END AS check_result FROM DUAL;

以上正则表达式中的“^[[:digit:]]{17}([[:digit:]]|X)$”表示前17位必须是数字,最后一位可以是数字或大写字母X。

标签:digit,判断,LIKE,正则表达式,Oracle,REGEXP,数字
From: https://www.cnblogs.com/sunny3158/p/17692854.html

相关文章

  • Debezium日常分享系列之:Oracle数据库系列文章之安装和设置
    Debezium日常分享系列之:Oracle数据库系列文章之安装和设置一、什么是Oracle二、安装Oracle三、配置Oracle1.配置Oracle:归档日志2.配置Oracle:重做日志3.配置Oracle:补充日志记录4.配置Oracle:用户设置四、总结这篇文章是由3部分组成的系列文章的一部分,该系列文章探讨如何使用......
  • Debezium系列之:获取Oracle JDBC驱动程序和XStream API文件
    Debezium系列之:获取OracleJDBC驱动程序和XStreamAPI文件一、背景二、详细步骤1.下载OracleClient包2.解压缩3.复制ojdbc8.jar和xstreams.jar文件4.创建环境变量三、XStream连接器属性一、背景DebeziumOracle连接器需要OracleJDBC驱动程序(ojdbc8.jar)才能连接到Oracl......
  • ORACLE内置函数
    ORACLE内置函数原文链接:https://blog.csdn.net/m0_63300795/article/details/124473586目录一,内置函数的分类.二,转换函数三,日期函数四,字符函数五,数学函数六,聚合函数一,内置函数的分类.内置函数:Oracle自带的函数,我能只需要去调用就可以了。Oracle里面的内置函数分为......
  • 2.Oracle 11g rac安装
    查考:https://www.bilibili.com/video/BV1oJ411q7h3?p=10&spm_id_from=pageDriver&vd_source=410828f542644e3f8ce51b0e82e8475d......
  • oracle 高级用法
    Oracle数据库有许多高级用法,以下是其中一些常见的:数据库角色:Oracle中有三个重要的角色,分别是connect角色、resource角色和dba角色。Connect角色是授予最终用户的典型权利,包括修改会话、建立聚簇、建立数据库链接、建立序列、建立会话、建立同义词和建立视图等权限。Resource角色是......
  • Oracle判断是否为数字
    一、判断是否为数字的方法在Oracle中,常用的判断是否为数字的方法是使用REGEXP_LIKE函数和正则表达式。SELECTCASEWHENREGEXP_LIKE('123','^[[:digit:]]+$')THEN'是数字'ELSE'不是数字'ENDAScheck_resultFROMDUAL;以上代码会返回结果为“是数字”,因为“123”是由......
  • Springboot项目中pom.xml配置文件无法解析下载oracl数据库解决办法(Cannot resolve com
    网上说是因Oracle的版权问题,导致maven下载不下来ojdbc各个版本的jar包。就会报错Cannotresolvecom.oracle:ojdbc6:11.2.0.1.0 经过一番百度,找到了一个适用的解决方法,如下操作即可:1.在终端或客户端机器上找到oracle安装驱动目录:例如:E:\myorcl\product\11.2.0\dbhome_1\j......
  • 达梦数据库教程:DM8数据迁移工具使用教程(oracle迁移至DM8)
    DM数据迁移工具DM数据迁移工具DMDTS提供了主流大型数据库迁移到DM、DM到DM、文件迁移到DM以及DM迁移到文件等功能。得益于DM数据库对目前主流大型关系型数据库系统有着业界领先的兼容性,在存储层面、语法层面、接口层面和它们保持高度兼容,借助于DM图形界面且采用向......
  • Navicat连接oracle时,提示oracle library is not loaded
    一、背景本机配置:win764位本机同时安装了oracle服务器端和客户端服务器端:11gR2; 客户端:oracle10g32位(由于项目需要,必须安装此客户端) 二、报错描述先安装的11gR2,用Navicat连接正常,后面再安装10g32位的客户端后,连接报错:oraclelibraryisnotloaded 三、报错原因因为......
  • oracle查看表锁以及对应语句
    setlinesize400pagesize999\rcolmachinefora20\rcolsql_idfora20\rcolprev_sql_idfora20\rcolobject_namefora20\rcolobject_typefora20\rcoloracle_usernamefora15\rSELECTs.inst_id,\rs.sql_id,\rs.prev_sql_id,\......