[英]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.