美文网首页程序员Android开发经验谈
db2用户定义函数(UDF)外部函数java实现

db2用户定义函数(UDF)外部函数java实现

作者: 三生浮屠 | 来源:发表于2016-12-19 16:10 被阅读222次

近期有个需求需要实现汉字个数统计(由于db2不包括执行正则表达式匹配的功能),所以需要用db2的java UDF来实现,以下是在windows环境下的实现步骤:

实现步骤
以下是一个例子(实现目标符合正则表达式个数):
java代码如下
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Count
{
   /**
     * 按照正则匹配统计
     * @param str
     * @param regexp
     * @return
     */
    public static int countByRegexp(String str,String regexp){
        int count = 0;
        Pattern p = Pattern.compile(regexp);
        Matcher m = p.matcher(str);
        while(m.find()){
            count++;
        }
        return count;
    }
}

直接进入db2实例下的JDK或JVM编译java文件或将jvm/jdk拷贝到其他目录编译如下:

C:\Users\lucifel\Desktop\db2_java\jre\bin>javac.exe -d ....\ ....\Count.java

拷贝编译好的class文件到 DB2 实例的 sqllib/function 目录下 windows目录如:

C:\Program Files\IBM\SQLLIB\FUNCTION

最后注册新建函数 代码如下:

set current schema='TEST'
CREATE OR REPLACE FUNCTION count_by_regexp(str varchar(3000),msg varchar(3000))
    RETURNS INTEGER
    FENCED 
    NOT DETERMINISTIC
    NO SQL
    LANGUAGE JAVA
    PARAMETER STYLE JAVA
    EXTERNAL NAME 'Count.countByRegexp' 
    NO EXTERNAL ACTION

上边代码中count_by_regexp函数的参数分别对应java代码中的参数
类型String对应varchar,int对应INTEGER

RETURNS INTEGER --返回类型
EXTERNAL NAME 'Count.countByRegexp' --相应的类名和方法

最后执行测试看是否成功:

--获取目标字符串字母的个数
values TEST.count_by_regexp('休息休息2ac2c33','[a-zA-Z]')

结果如下没有问题

3

相关文章

  • db2用户定义函数(UDF)外部函数java实现

    近期有个需求需要实现汉字个数统计(由于db2不包括执行正则表达式匹配的功能),所以需要用db2的java UDF来...

  • Hive 自定义函数 UDF

    Hive 自定义函数 UDF UDF:用户定义(普通)函数,只对单行数值产生作用; UDF只能实现一进一出的操作。

  • Hive的UDF编程-GenericUDF编程

    UDF简介 在Hive中,用户可以自定义一些函数,用于扩展HiveQL的功能,而这类函数叫做UDF(用户自定义函数...

  • 【Hive】注册UDF的过程

    实现步骤 对比SparkSQL注册UDF的过程SparkSQL用户自定义函数UDF和UDAF、UDTF[https...

  • Hive 用户自定义函数 UDF,UDAF

    Hive有UDF:(普通)UDF,用户自定义聚合函数(UDAF)以及用户自定义生表函数(UDTF)。它们所接受的输...

  • hive-1.2.1自定义函数UDF、UDTF

    Hive中有三种UDF: 1、用户定义函数(user-defined function)UDF; 2、用户定义聚集...

  • Spark-用户定义函数

    用户可以调用SparkSession的udf功能自定义函数 用户定义函数 加载json数据val df = spa...

  • Hive- UDF&GenericUDF

    hive udf简介 在Hive中,用户可以自定义一些函数,用于扩展HiveQL的功能,而这类函数叫做UDF(用户...

  • Flink1.9 UDF使用教程

    UDF是什么? UDF是用户自定义函数(User Define Function)的缩写,从定义可以看出UDF是一...

  • 【Hive】Hive UDF

    [TOC] 一、UDF 介绍 UDF(User-Defined Functions)即是用户自定义的hive函数。...

网友评论

    本文标题:db2用户定义函数(UDF)外部函数java实现

    本文链接:https://www.haomeiwen.com/subject/wectvttx.html