首页 / 正则 / sql server使用正则表达式
sql server使用正则表达式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了sql server使用正则表达式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3054字,纯文字阅读大概需要5分钟。
内容图文
![sql server使用正则表达式](/upload/InfoBanner/zyjiaocheng/859/5bed705a6d22463b92afc98d6031644c.jpg)
目标
为数据库创建一个正则表达式函数,供查询使用
不建议使用函数,能查询到内存里面用代码解决的就用代码解决!!!
这里的方法仅供参考
操作
1.新建sql server项目
2.定义正则表达式的方法
public class SqlFunction { /// 是否匹配正则表达式 //////输入的字符串///正则表达式///是否忽略大小写///[Microsoft.SqlServer.Server.SqlFunction] public static bool RegexMatch(string input, string pattern, bool ignoreCase) { bool isMatch = false; if (!string.IsNullOrEmpty(input) && !string.IsNullOrEmpty(pattern)) { try { Match match = null; if (ignoreCase) match = Regex.Match(input, pattern, RegexOptions.Multiline | RegexOptions.IgnoreCase | RegexOptions.Compiled); else match = Regex.Match(input, pattern, RegexOptions.Multiline | RegexOptions.Compiled); if (match.Success) isMatch = true; } catch { } } return isMatch; } /// 获取正则表达式分组中的字符 //////输入的字符串///正则表达式///分组的位置///返回字符的最大长度///[Microsoft.SqlServer.Server.SqlFunction] public static string GetRegexMatchGroups(string input, string pattern, int groupId, int maxReturnLength) { string strReturn = string.Empty; if (!string.IsNullOrEmpty(input) && !string.IsNullOrEmpty(pattern)) { try { Match match = Regex.Match(input, pattern, RegexOptions.Multiline | RegexOptions.IgnoreCase | RegexOptions.Compiled); if (match.Success && (groupId < match.Groups.Count)) { strReturn = match.Groups[groupId].Value; strReturn = (strReturn.Length <= maxReturnLength) ? strReturn : strReturn.Substring(0, maxReturnLength); } } catch { return string.Empty; } } return strReturn; } }
3.配置数据库相关信息
右键-属性,设置连接字符串,可以设置多个连接
设置数据库版本
4.右键,发布
选择目标数据库即可
使用
--注意N不能遗漏 --注意sql里面的"true","false"对应1,0 where dbo.RegexMatch(table.property,N'"title":"[^"]*搜索内容[^"]*"',1)=1
注意事项
1.发布报错:执行 CREATE ASSEMBLY 时失败,因为该程序集是为公共语言用户时的不受支持的版本生成的
SQL SERVER 2008R2 不支持.net4.0, 需要把项目改成.net3.5 部署成功了
2.执行sql报错:禁止在 .NET Framework 中执行用户代码。启用 "clr enabled" 配置选项
执行:
exec sp_configure 'show advanced options', '1'; go reconfigure; go exec sp_configure 'clr enabled', '1' go reconfigure; exec sp_configure 'show advanced options', '1'; go
参考资料:禁止在 .NET Framework 中执行用户代码。启用 "clr enabled" 配置选项
参考资料
SQL Server 阻止了对组件 'Ole Automation Procedures' 的 过程'sys.sp_OACreate' 的访问的解决方法
SQL Server中使用正则表达式
在VS2013中新建SQL Server项目,如何使用?
其他——PATINDEX
where PATINDEX(N'%搜索内容%', table.property)>=1
这里是使用通配符匹配
PATINDEX (Transact-SQL)
返回的是匹配的位置序号,不匹配返回0,判断序号>=1,即匹配
内容总结
以上是互联网集市为您收集整理的sql server使用正则表达式全部内容,希望文章能够帮你解决sql server使用正则表达式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。