IBM DB2自定义函数的语法

IBM DB2自定义函数的语法

问题描述:

我有一个自定义的正则表达式DB2功能如下: -IBM DB2自定义函数的语法

CREATE OR REPLACE FUNCTION REGEXP_LIKE(SOURCE VARCHAR(3000), REGEX VARCHAR(512), 
MODE VARCHAR(3)) 

RETURNS INTEGER 
FENCED 
NOT DETERMINISTIC 
NO SQL 
LANGUAGE JAVA 
PARAMETER STYLE JAVA 
EXTERNAL NAME 'db2_regex:com.ibm.avalanche.udf.regex.Regexp.regexpLike' 
NO EXTERNAL ACTION 
@ 

这是从下面的文章取(http://www.ibm.com/developerworks/data/library/ techarticle/DM-1011db2luwpatternmatch/index.html中CA = DRS-)

如下此功能可用于: -

select ID from TABLE where 
REGEXP_LIKE(STRING, 'regex', 'i') > 0 

Oracle的版本如下: -

select ID from TABLE where 
REGEXP_LIKE(STRING, 'regex', 'i') 

请注意,它不要求大于零(> 0)。

我的问题是: - 我可以在以前的DB2函数中实现这个Oracle语法。我认为关键的mybe是“RETURNS INTEGER”?

我试过几个不同的东西,任何帮助将不胜感激。

+0

你有什么试过?尝试发布您的解决方案,我们可以看到我们可以提供帮助。 – 2011-03-30 18:18:24

+0

我只是试着改变返回类型。我不确定这是否可以在SQL的WHERE语句中实现,因为必须始终有一个返回类型。如果返回类型是一个布尔值,那么你可能不需要 > 0 位。 – user684456 2011-03-31 09:08:18

用于Linux,UNIX和Windows DB2 9.7仅支持了在启用了甲骨文兼容性矢量创建的DB2数据库运行PL/SQL代码模块内的布尔数据类型。

因此,您将无法定义返回布尔类型的UDF,也无法指定用于检查布尔值的SQL谓词(除了内置布尔表达式,如EXISTS,IS NULL等)。