db2用戶定義函數(shù)(UDF)外部函數(shù)java實(shí)現(xiàn)

近期有個(gè)需求需要實(shí)現(xiàn)漢字個(gè)數(shù)統(tǒng)計(jì)(由于db2不包括執(zhí)行正則表達(dá)式匹配的功能)拔恰,所以需要用db2的java UDF來(lái)實(shí)現(xiàn)均抽,以下是在windows環(huán)境下的實(shí)現(xiàn)步驟:

實(shí)現(xiàn)步驟

以下是一個(gè)例子(實(shí)現(xiàn)目標(biāo)符合正則表達(dá)式個(gè)數(shù)):
java代碼如下

import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Count
{
   /**
     * 按照正則匹配統(tǒng)計(jì)
     * @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;
    }
}

直接進(jìn)入db2實(shí)例下的JDK或JVM編譯java文件或?qū)vm/jdk拷貝到其他目錄編譯如下:

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

拷貝編譯好的class文件到 DB2 實(shí)例的 sqllib/function 目錄下 windows目錄如:

C:\Program Files\IBM\SQLLIB\FUNCTION

最后注冊(cè)新建函數(shù) 代碼如下:

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函數(shù)的參數(shù)分別對(duì)應(yīng)java代碼中的參數(shù)
類(lèi)型String對(duì)應(yīng)varchar,int對(duì)應(yīng)INTEGER

RETURNS INTEGER --返回類(lèi)型
EXTERNAL NAME 'Count.countByRegexp' --相應(yīng)的類(lèi)名和方法

最后執(zhí)行測(cè)試看是否成功:

--獲取目標(biāo)字符串字母的個(gè)數(shù)
values TEST.count_by_regexp('休息休息2ac2c33','[a-zA-Z]')

結(jié)果如下沒(méi)有問(wèn)題

3

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末溪王,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌瘪匿,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,681評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寻馏,死亡現(xiàn)場(chǎng)離奇詭異棋弥,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)诚欠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)顽染,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人轰绵,你說(shuō)我怎么就攤上這事粉寞。” “怎么了左腔?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,421評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵唧垦,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我液样,道長(zhǎng)业崖,這世上最難降的妖魔是什么野芒? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,114評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮双炕,結(jié)果婚禮上狞悲,老公的妹妹穿的比我還像新娘。我一直安慰自己妇斤,他們只是感情好摇锋,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,116評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著站超,像睡著了一般荸恕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上死相,一...
    開(kāi)封第一講書(shū)人閱讀 52,713評(píng)論 1 312
  • 那天融求,我揣著相機(jī)與錄音,去河邊找鬼算撮。 笑死生宛,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的肮柜。 我是一名探鬼主播陷舅,決...
    沈念sama閱讀 41,170評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼审洞!你這毒婦竟也來(lái)了莱睁?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 40,116評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤芒澜,失蹤者是張志新(化名)和其女友劉穎仰剿,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體痴晦,經(jīng)...
    沈念sama閱讀 46,651評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡酥馍,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,714評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了阅酪。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片旨袒。...
    茶點(diǎn)故事閱讀 40,865評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖术辐,靈堂內(nèi)的尸體忽然破棺而出砚尽,到底是詐尸還是另有隱情,我是刑警寧澤辉词,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布必孤,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏敷搪。R本人自食惡果不足惜兴想,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,211評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望赡勘。 院中可真熱鬧嫂便,春花似錦、人聲如沸闸与。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,699評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)践樱。三九已至厂画,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拷邢,已是汗流浹背袱院。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,814評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留瞭稼,地道東北人忽洛。 一個(gè)月前我還...
    沈念sama閱讀 49,299評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像弛姜,于是被迫代替她去往敵國(guó)和親脐瑰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子妖枚,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,870評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法廷臼,類(lèi)相關(guān)的語(yǔ)法,內(nèi)部類(lèi)的語(yǔ)法绝页,繼承相關(guān)的語(yǔ)法荠商,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,665評(píng)論 18 399
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理续誉,服務(wù)發(fā)現(xiàn)莱没,斷路器,智...
    卡卡羅2017閱讀 134,716評(píng)論 18 139
  • 從三月份找實(shí)習(xí)到現(xiàn)在酷鸦,面了一些公司饰躲,掛了不少,但最終還是拿到小米臼隔、百度嘹裂、阿里、京東摔握、新浪寄狼、CVTE、樂(lè)視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,280評(píng)論 11 349
  • 每個(gè)人都希望在未來(lái)的日子里變的越來(lái)越好氨淌,希望在人生旅途中漸漸填滿自己喜歡的顏色泊愧,去綻放光彩伊磺,期待遇見(jiàn)更具有自信力的...
    豆瓣綠兒閱讀 452評(píng)論 4 3
  • 第一章 我不是故意的! 在繁華的上海里有一個(gè)女孩叫林墨晗删咱!她是上海華陽(yáng)中學(xué)...
    月紫煦閱讀 103評(píng)論 0 1