首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >与MySql Regex函数类似的SQL REGEX函数。

与MySql Regex函数类似的SQL REGEX函数。
EN

Stack Overflow用户
提问于 2009-06-08 13:54:27
回答 4查看 2.4K关注 0票数 2

我正在寻找一个函数,将能够做与TSQL函数的MySQL相同的事情。基本上,我需要我的查询看起来像下面这样:

代码语言:javascript
运行
复制
SELECT * FROM Routing WHERE (@Message REGEX RouteRegex);

在这一点上我并不热衷于使用CLR。

有什么想法吗?

EN

Stack Overflow用户

发布于 2009-06-08 14:44:53

这有点像用锤子做黄油吐司,但是您可以通过pattern facet在xml数据类型中使用正则表达式支持。然后,通过尝试解析为类型化的xml来确定正则表达式是否匹配,如果跳到catch块并返回错误6926,则正则表达式不匹配(简单类型验证错误)。下面是一个强制使用3位十进制数字后跟6个字母的正则表达式的示例:

代码语言:javascript
运行
复制
create xml schema collection regexTest1 as '<xs:schema targetNamespace="http://example/regexTest"
                  elementFormDefault="qualified"
                  xmlns="http://example/regexTest"
                  xmlns:mstns="http://tempuri.org/XMLSchema.xsd"
                  xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="regexTest">
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:pattern value="\p{Nd}{3}\p{L}{6}"></xs:pattern>
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
</xs:schema>'


declare @x xml(dbo.regexTest1), @regexPass bit
begin try
    set @x = '<regexTest xmlns="http://example/regexTest">111abcdef</regexTest>'
    set @regexPass=1
end try
begin catch
    if (error_number()=6926)
    begin
        set @regexPass=0
    end
    else begin
        declare @errMsg varchar(8000), @errSev int, @errState int
        select @errMsg='Regex check was unable to process, native error: (' 
            + cast(error_number() as varchar(16))
            + ') - '
            + error_message(),
            @errSev=error_severity(),
            @errState=error_state()

        raiserror(@errMsg, @errSev, @errState)
    end
end catch
select @regexPass

Edit -如果走这条路,在XSD中支持正则表达式的规范在http://www.w3.org/TR/xmlschema-2/#dt-regex

票数 0
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/965026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档