SQL Server中利用正規表示式替換字串

2021-07-25 03:22:45 字數 1559 閱讀 2213

建立正則替換函式,利用了ole物件,以下是函式**:

[sql]view plain

copy

--如果存在則刪除原有函式

if object_id(n'dbo.regexreplace') is

notnull

drop

function dbo.regexreplace  

go  

--開始建立正則替換函式

create

function dbo.regexreplace  

(  @string varchar(max),   --被替換的字串

@pattern varchar(255),  --替換模板

@replacestr varchar(255),   --替換後的字串

@ignorecase int = 0 --0區分大小寫 1不區分大小寫

)  returns

varchar(8000)  

asbegin

declare @objregex int, @retstr varchar(8000)  

--建立物件

exec sp_oacreate 'vbscript.regexp', @objregex out

--設定屬性

exec sp_oasetproperty @objregex, 'pattern', @pattern  

exec sp_oasetproperty @objregex, 'ignorecase', @ignorecase  

exec sp_oasetproperty @objregex, 'global', 1  

--執行

exec sp_oamethod @objregex, 'replace', @retstr out, @string, @replacestr  

--釋放

execute sp_oadestroy @objregex  

return @retstr  

endgo  

--保證正常執行的話,需要將ole automation procedures選項置為1  

exec sp_configure 'show advanced options', 1    

reconfigure with override   

exec sp_configure 'ole automation procedures', 1    

reconfigure with override   

複製以上**,到sql中執行

然後測試,如下

[sql]view plain

copy

--2.將姓名倒過來  

select dbo.regexreplace('john smith', '([a-z]+)\s([a-z]+)', '$2,$1',1)    

/*   

-------------------------------------- 

smith,john   

*/   

sqlserver中鎖表應用

鎖乙個sql表的語句是sql 資料庫使用者都需要知道的,下面就將為您介紹鎖sql表的語句,希望對您學習鎖sql表方面能有所幫助。鎖定資料庫的乙個表 select from table with holdlock 注意 鎖定資料庫的乙個表的區別 select from table with holdl...

SQL SERVER 正則替換

use pubdb goif object id n dbo.regexreplace is not null drop function dbo.regexreplace go 開始建立正則替換函式 create function dbo.regexreplace string varchar m...

利用SQL Server傳送郵件

配置sql server 允許發郵件這裡有兩種方式一中是通過介面操作,一中是全 操作。兩種方式的結果是一樣的,使用者可以先通過 操作,在通過介面操作去檢視 1 操作 1.配置資料 exec sp configure show advanced options 1 reconfigure with o...