2014-01-22 38 views
0

我有一個存儲過程(該SP用於通過在大文本文檔中搜索該內容來替換n個已有內容和新內容)。新內容和現有內容將作爲參數發送給SP。 考慮PARAMATERS作爲在Sql服務器中分解一個字符串

@oldContent varchar(100), 
@newContent varchar(100), 
@WholeContent varchar(500), 

存儲過程裏面,我們有一個替換功能,這被稱爲

set @ WholeContent = REPLACE(@WholeContent, @oldContent, @newContent) 

,它工作正常,

現在有一個變化業務,訣竅是我們將有多箇舊值(將作爲單個參數發送) 將發送的值將如下 例如,

oldContent = ‘sa[abc]f[wes]’ 
newContent =’sam’ 

中的新內容將只有1值說「SAM」 ,但舊的內容可以有不同的值,在這個例子中發送的舊值爲sa [ABC] F [韋斯利] 現在我們應該將舊內容分解爲saafw,sabfw,......... ..sacfs ...(共9) 然後我們調用替換oldconetnt(由所有組合創建的文本)的函數replacefunction。 因此,

set @ WholeContent = REPLACE(@WholeContent, @oldContent, @newContent) 

這應該被稱爲多次。

剛纔看到如何實現舊值的分解爲不同的值,並以非常有效的方式調用替換函數。 是否有任何可以分解並賦予不同組合的函數構建?

+1

我不確定我是否同意這首先是SQL Server的工作。它擅長很多東西,但即使沒有開箱即用的最原始的RegEx支持,這不是其中之一。 –

回答

1

除非你正在做一個單一的Sql-Server應用程序,女巫專門在Sql-Server環境下運行,你應該實現Regular Expression,女巫可能是由你的語言/框架通過一些API提供的。