gpt4 book ai didi

db2 - 正则表达式 IBM DB2 iSeries

转载 作者:行者123 更新时间:2023-12-04 06:07:52 24 4
gpt4 key购买 nike

谁能给我一个线索,如何在 DB2 iSeries 中创建/调用函数正则表达式语法。

例子:

DECLARE VAL VARCHAR (16) DEFAULT 'abcde1235876e' ;
DECLARE RET INT DEFAULT 0;

我只是在检查 VARIABLE VAL 必须只包含数值并返回 true/false
SET VAL = I_NEED_FUNCTION_REGEX(VAL);
IF (VAL = true) THEN
SET RET = 1;
ELSE
SET RET = 0;
END IF;

就这么简单,但我一直在 IBM 搜索如下:

http://www.ibm.com/developerworks/data/library/techarticle/0301stolze/0301stolze.html



但我不太明白。

你能帮我吗 ?

更新

我现在回到了旧的方式和简单的方式。
CREATE FUNCTION TEST.VALIDATE_NUMERIC (VAL CHARACTER VARYING(1))
RETURNS INTEGER
LANGUAGE SQL
SPECIFIC TEST.VALIDATE_NUMERIC
MODIFIES SQL DATA
CALLED ON NULL INPUT
FENCED
DISALLOW PARALLEL
NO EXTERNAL ACTION
BEGIN ATOMIC
DECLARE RET INT DEFAULT 0 ;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION , SQLWARNING , NOT FOUND

IF ( VAL IS NOT NULL ) THEN

CASE VAL
WHEN 0 THEN -- (0)
SET RET = 1 ;
WHEN 1 THEN -- (1)
SET RET = 1 ;
WHEN 2 THEN -- (2)
SET RET = 1 ;
WHEN 3 THEN -- (3)
SET RET = 1 ;
WHEN 4 THEN -- (4)
SET RET = 1 ;
WHEN 5 THEN -- (5)
SET RET = 1 ;
WHEN 6 THEN -- (6)
SET RET = 1 ;
WHEN 7 THEN -- (7)
SET RET = 1 ;
WHEN 8 THEN -- (8)
SET RET = 1 ;
WHEN 9 THEN -- (9)
SET RET = 1 ;
ELSE
SET RET = 0 ;
END CASE ;

END IF ;

RETURN RET ;
END
GO

谢谢
米兹克

最佳答案

开箱即用的 DB2 不具备处理正则表达式的能力。有一些函数可以处理一些模式匹配,但它受到严格限制。

您链接的文章是如何设置 UDF(用户定义函数)以调用外部 (C) 库以提供此功能。虽然为 LUW 显示了这些步骤,但 iSeries 版本应该大致相同;您将不得不让您的 DBA 实现对相关库的调用。

关于db2 - 正则表达式 IBM DB2 iSeries,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8133841/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com