小智 6
我是komikoni(小西圭佑).
我创建了db2中不存在的正则表达式函数(UDF).UDF使用SQL/XML(Xquery).你可以轻松安装.
正则表达式列表提供UDF
脚本可以从这里下载.(抱歉用日语)
https://www.ibm.com/developerworks/jp/data/library/db2/j_d-regularexpression/
(英文:Machine translation Script:日文页面的最后一页)
我期待着您的反馈和意见.
真正的答案是DB2 确实支持正则表达式,因为通过xQuery和匹配函数添加了PureXML(包括v9.7).
例如:
db2 "with val as (
select t.text
from texts t
where xmlcast(xmlquery('fn:matches(\$TEXT,''^[A-Za-z 0-9]*$'')') as integer) = 0
)
select * from val"
Run Code Online (Sandbox Code Playgroud)
欲获得更多信息:
小智 5
除了DB2 z/OS之外,它工作正常 - 在DB2 v10 z/OS中,您必须使用PASSING,如下所示
with val as (
select t.text
from texts t
where xmlcast(xmlquery('fn:matches($v,"^[A-Za-z 0-9]*$")'
PASSING t.text as "v" ) as integer) = 0
)
select * from val
Run Code Online (Sandbox Code Playgroud)
从DB2 11.1开始,内置了regex支持。新功能之一是REGEXP_SUBSTR
并且还有更多功能。
SELECT REGEXP_SUBSTR('hello to you', '.o',1,1)
FROM sysibm.sysdummy1
Run Code Online (Sandbox Code Playgroud)
DB2 9.7 中没有对正则表达式的内置支持。
唯一的方法是使用 UDF 或表函数,如评论中添加的文章“OMG Ponies”中所述。
@dan1111:我不喜欢我的帖子被编辑,特别是如果人们无法正确阅读问题。OP 询问DB2 9.7 的任何 REGEXP-In- SQL支持
SQL 不是 XQuery!
抱歉,请不要删除我 100% 正确答案的文字。您可以添加评论或写下您自己的答案。
归档时间: |
|
查看次数: |
37147 次 |
最近记录: |