DB2实现正则表达式

这篇具有很好参考价值的文章主要介绍了DB2实现正则表达式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

DB2实现正则表达式

功能描述

db2 11.1 及以上版本支持正则表达式,但是db2 10.5及以下版本不支持正则表达式,需要手工创建正则表达式函数。

安装与卸载步骤

================================================================================
== README.txt
==
== 2010-07-30
== IBM IMTE - Project Avalanche
==
== Author: Alexandre Grancher
==
================================================================================

This file describes the set of instructions to follow to deploy or to re-deploy
the DB2 regular expressions package.


Context
-------
Oracle gives the ability to its users to use regular expresssions functions to 
perform pattern matching directly in their SQL statements.

DB2 does not do that natively. Therefore, we have developped a JAVA class to 
implement an API which does pattern matching.
DB2 uses JAVA routines to bind with the implemented JAVA functions.

Enablement
----------

1- Save attached db2_regex.zip file to a new folder on the hard disk for example 
     to C:\avalanche
2- Extract all files from the zip file to C:\avalanche\db2_regex
3- Open C:\avalanche\db2_regex\scripts\sql\db2_regex_functions.sql.
4- Edit the script to suit your environment, you will need to :
        4.1- On the first line, change the database name from DB2MIGR to whatever 
             database you are using
        4.2- On the second line, you will need to change the directory name. 
             If you are using unix the syntax should be something like : 
             CALL SQLJ.INSTALL_JAR('file:/tmp/avalanche/db2_regex/lib/db2_regex.jar', db2_regex);

5- In a DB2 command line processor window, run : 
     \>db2 connect to <my_db> user <uid> using <pwd>
     \>db2 set current schema='REGEXP'
     \>db2 -td@ -vf C:\avalanche\db2_regex\scripts\sql\db2_regex_functions.sql

If you have already deployed the package and you want to deploy it again (for 
instance you have modified the JAVA code and you want to try the updated code),
then consider the following set of instructions.

1- Extract the zip file into C:\avalanche\db2_regex
From a db2 command window :
2- db2 connect t to <my_db> user <uid> using <pwd>
3- db2 set current schema='REGEXP'
4- db2 drop function REGEXP_LIKE
5- db2 drop function REGEXP_REPLACE
6- db2 drop function REGEXP_SUBSTR
7- db2 drop function REGEXP_INSTR
8- db2 call SQLJ.REMOVE_JAR(db2_regex)
9- db2stop force
10- db2start
11- db2 connect to <my_db> user <uid> using <pwd>
12- db2 set current schema='REGEXP'
13- db2 -td@ -f C:\avalanche\db2_regex\scripts\sql\db2_regex_functions.sql
14- Make sure that no error was raised at any point.


API
---

The API to the 4 methods is as follows, they closely follow the syntax for the 
Oracle functions defined in http://www.regular-expressions.info/oracle.html.

INTEGER REGEXP_LIKE(SOURCE VARCHAR(3000), REGEX VARCHAR(512), MODE VARCHAR(3))

VARCHAR(3000) REGEXP_REPLACE(SOURCE VARCHAR(3000), 
                             REGEX VARCHAR(512), 
                             REPLACEMENT VARCHAR(3000), 
                             POSITION INTEGER,
                             OCCURRENCE INTEGER,
                             MODES VARCHAR(3))

VARCHAR(3000) REGEXP_SUBSTR(SOURCE VARCHAR(3000),
                             REGEX VARCHAR(512),
                             POSITION INTEGER,
                             OCCURRENCE INTEGER,
                             MODES VARCHAR(3))

INTEGER REGEXP_INSTR(SOURCE VARCHAR(3000),
                     REGEX VARCHAR(512),
                     POSITION INTEGER,
                     OCCURRENCE INTEGER,
                     ROPT INTEGER,
                     MODES VARCHAR(3))

Further details of each of the parameters passed to the above functions can 
used can be found as Java documentation in 
C:\avalanche\db2_regex\doc\index.html.


Examples
--------

select ID from REGEXP.REGEXP_STRINGS where REGEXP_LIKE(STRING, '^.EF[ ]+SAVEALIAS[ ]+[0-9]+', 'c') > 0

select ID from REGEXP.REGEXP_STRINGS where REGEXP_REPLACE(STRING, '^.EF[]+SAVEALIAS[ ]+[0-9]+', 'XX', 1, 1, 'c')='XX'

select ID from REGEXP.REGEXP_STRINGS where REGEXP_SUBSTR(STRING, '^.EF[ ]+SAVEALIAS[ ]+[0-9]+', 1, 1, 'c')='DEF SAVEALIAS 2210'

select ID from REGEXP.REGEXP_STRINGS where REGEXP_INSTR(STRING, '^.EF[ ]+SAVEALIAS[ ]+[0-9]+',1, 1, 1, 'c') > 0

---------------------------------

常用正则表达式

- 手机规则:
  规则:手机号以1[3|4|5|6|7|8|9]开头,位数为11位数字
  示例:13012345678
  表达式:^[1][3,4,5,6,7,8,9][0-9]{9}$

- 电话
  规则:电话号码可以存在3~4位区号,使用“-”分隔,后面为7~8位数字;
  示例:有区号:010-12345678  无区号:12345678
  正则表达式:^([0-9]{3,4}-)?[0-9]{7,8}$

- 身份证
  简单规则:15位或18位数字,或17位数字+大写字母X,其他规则自行调整;
  正则表达式:(^\d{15}$)|(^\d{17}(\d|X)$)

下载地址

https://download.csdn.net/download/huryer/88101372?spm=1001.2014.3001.5501文章来源地址https://www.toymoban.com/news/detail-606659.html

到了这里,关于DB2实现正则表达式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • DB2 数据库监控用户赋权手册

    皮皮运维平台数据统一采集用户(DBAA)需要被监控数据库赋予对应下查询表、表函数以 及获取数据库监控数据的权限,具体授权操作有以下三部分。 实例用户 执行命令,并将结果重定向到 grant_select_to_dbaa.sql 文件中 实例用户 执行 db2 -tvf grant_select_to_dbaa.sql 进行赋权。 实例

    2024年02月07日
    浏览(35)
  • NineData:高效、安全、可靠的DB2数据管理平台

    Db2 是老牌厂商 IBM 研发和维护的关系型数据库管理系统。作为一个拥有悠久历史的数据库系统,Db2 凭借它的高可靠、可扩展和高安全性等诸多优点,在如今的数据库市场依然占据相当大的份额。 对于诸多金融行业的企业而言, Db2 作为承载其核心业务数据的数据库系统,有着

    2024年02月08日
    浏览(36)
  • 技术选型指南:Oracle、SQL Server还是DB2?

    Oracle vs SQL Server vs DB2 - 选哪个好? 在企业级数据管理领域,常用的几个选择有Oracle、SQL Server和DB2。 首先,我们从以下几个方面做一下对比: 1. 性能和稳定性: Oracle: Oracle就像是那种精密的瑞士手表,对于大型企业级应用来讲,它处理复杂的、规模庞大的事务就像切黄油一样

    2024年02月20日
    浏览(53)
  • Linux系统安装DB2数据库的详细步骤

    1、DB2数据库的安装 一、将DB2的安装介质上传至/home目录,并解压:    tar –zxvf v9.5fp3_linuxx64_server.tar.gz 二、执行LANG=C 三、进入解压后的server目录(cd server/),执行./db2setup,步骤如下: # cd /home # tar -zxvf v9.7_linuxx64_server.tar.gz # cd server/ # ./db2setup     请额外注意:这里选择 Do

    2024年02月08日
    浏览(45)
  • python使用odbc连接db2、sqlserver数据库

    先介绍安装odbc驱动,如果已安装跳过次环节 参考链接:linux环境odbc驱动安装 - 哔哩哔哩 也可参考微软官网(Windows驱动也有介绍):安装 Microsoft ODBC Driver for SQL Server (Linux) - ODBC Driver for SQL Server | Microsoft Learn ODBC Driver是一种动态链接库 (DLL),支持 ODBC 的应用程序(如 Excel)可

    2024年02月10日
    浏览(42)
  • Db2的时间转换(字符串,时间戳,Unix时间戳)

    Ubuntu 22.04 Db2 11.5.0 参见 https://www.ibm.com/docs/en/db2/11.5?topic=list-datetime-values Db2有3种时间类型: DATE :例如 03/20/2023 ,当前日期的special register为 CURRENT DATE TIME :例如 21:23:23 ,当前时间的special register为 CURRENT TIME TIMESTAMP :例如 2023-03-20-21.23.49.513704 ,当前时间戳的special register为

    2024年02月08日
    浏览(56)
  • DB2 HADR+TSA运维,TSA添加资源组的命令

    Tivoli System Automation(TSA)是一个高可用性集群管理软件,DB2 TSA+HADR高可用方案可以实现DB2 hadr主备的自动检测切换。本文详细介绍了TSA的常用命令,如何把CDC或者DSG添加到TSA集群中,以及TSA的错误分析方法 常用命令: lsrpdomain/lsrpnode - 查询domain和node信息: [db2inst1@p0-pbd-pbd-db2

    2024年02月10日
    浏览(83)
  • GBASE regexp_replace函数 与 db2 translate函数比较

    以下内容参考自文档: translate 函数 官方示例: 示例1: 上述式子的意思为: 对于字符串:‘Test literal’,使用o 替代 e,使用 m替代 l 示例2: 函数返回在字符串文字“Another test literal”中进行以下替换后生成的字符串:A 替换为 B,t 替换为 f,e 替换为 i 并且 r 替换为 m。 当要

    2024年01月16日
    浏览(33)
  • 按分隔符分割字符串(DB2/mysql/hive/Oracle)

    1、DB2 --substr+locate/instr DB2没有自己按分隔符分割字符串的函数,只能结合使用 或者在DB2里还可以自己写一个split分割字符串的函数 附:instr函数用法--用来查找指定字符在字符串中出现的位置 DB2中的locate 函数可实现同样的功能,用法同 instr ,只是源字符串和目标字符串的位

    2024年02月13日
    浏览(52)
  • SeaTunnel JDBC DB2 Sink Connector支持的工作原理,快来学习吧!

    DB2是IBM的一款关系型数据库管理系统,JDBC DB2 Source Connector是一个用于通过JDBC读取外部数据源数据的连接器。Apache SeaTunnel如何支持JDBC DB2 Sink Connector?请参考本文档。 Spark Flink SeaTunnel Zeta 精确一次性 CDC(变更数据捕获) 使用 Xa 事务 来确保 精确一次性 。因此,只支持对支持

    2024年04月22日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包