只使用SQL Server 2000内置的功能,什么是处理特殊字符的最佳方式。我不确定纯正使用内置功能是否可以使用正则表达式?我想搜索并替换我的查询中的特殊字符。sql server 2000:TSQL特殊字符处理
感谢
只使用SQL Server 2000内置的功能,什么是处理特殊字符的最佳方式。我不确定纯正使用内置功能是否可以使用正则表达式?我想搜索并替换我的查询中的特殊字符。sql server 2000:TSQL特殊字符处理
感谢
这是使用ASCII字符范围去除特殊字符的函数。 小心:在高容量产品环境中实施之前,请确保对其进行测试并对CPU使用率感到满意。
此功能由基督教德Heureuse
CREATE FUNCTION dbo.RemoveSpecialChars (@s VARCHAR(256))
RETURNS VARCHAR(256)
WITH SCHEMABINDING
BEGIN
IF @s is null
RETURN null
DECLARE @s2 varchar(256)
DECLARE @l int
DECLARE @p int
SET @s2 = ''
SET @l = len(@s)
SET @p = 1
WHILE @p <= @l
BEGIN
DECLARE @c int
SET @c = ascii(substring(@s, @p, 1))
IF @c between 48 and 57 or @c between 65 and 90 or @c between 97 and 122
BEGIN
SET @s2 = @s2 + char(@c)
END
SET @p = @p + 1
END
IF LEN(@s2) = 0
BEGIN
RETURN null
END
RETURN @s2
END
虽然这 “唯一内置功能” 违反使用的定义,因为它依赖于WSH,所以this posting中列出的功能是获得正则表达式到SQL 2000的一种方法,并且可以扩展以支持替换等。虽然这不是纯粹的TSQL,但它不应该要求任何新的软件或扩展在t上他服务器(尽管许多DBA会锁定COM脚本存储过程)。
否则,gbn提到,唯一可用的本地TSQL操作是一大堆REPLACE
s。
加里从source-code.biz/snippets/mssql/1.htm修改,请尊重我的署名权,并指出这是在我的函数的修改版本http://www.source-code.biz/ snippets/mssql/1.htm – 2012-10-07 18:13:52
基督徒,我很高兴地承认你是源头。 – 2012-10-07 20:58:20