DB2实现正则表达式
功能描述
db2 11.1 及以上版本支持正则表达式,但是db2 10.5及以下版本不支持正则表达式,需要手工创建正则表达式函数。文章来源:https://www.toymoban.com/news/detail-606659.html
安装与卸载步骤
================================================================================
== 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模板网!