[英]sql server 2000: TSQL special characters handling
仅使用内置功能的SQL Server 2000,什么是处理特殊字符的最佳方法。 我不确定是否可以仅通过使用内置功能来使用正则表达式? 我想搜索并替换查询中的特殊字符。
谢谢
尽管这可能违反使用“ONLY内置功能”的定义,因为它依赖于WSH,在所列的功能此帖子是让正则表达式到SQL 2000的一种方式,并可以扩展到支持更换等,虽然这不是纯TSQL,它不应该在服务器上需要任何新软件或扩展(尽管许多DBA会锁定COM脚本存储的proc)。
否则,gbn会提到,唯一可用的本机TSQL操作是一堆REPLACE
。
这是将使用ASCII字符范围去除特殊字符的功能。 注意:在大批量产品环境中实施它之前,请确保对其进行测试并且对CPU使用情况感到满意。
此功能由Christian d'Heureuse从source-code.biz/snippets/mssql/1.htm修改
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.