非法字符串处理.sql
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_replace]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[f_replace]
GO
/*--非法字符替换函数
去掉字符串中,小于32的字符
保留 TAB char(9)
换行 char(10)
回车 char(13)
如果上述字符也不需要,则将函数中的注释删除
--邹建 2004.09(引用请保留此信息)--*/
/*--调用示例
--调用函数进行替换处理的示例
declare @s varchar(10)
set @s='a '+'b'+char(11)+'c'
select dbo.f_replace(@s)
--*/
create function f_replace(
@str varchar(8000)
)returns varchar(8000)
as
begin
select @str=replace(@str,a,'')
from(select a=N''
union all select N'' union all select N''
union all select N'' union all select N''
union all select N'' union all select N''
union all select N''
-- union all select N' ' --TAB char(9)
-- union all select N'
-- ' --换行 char(10)
union all select N' ' union all select N' '
-- union all select N'
-- ' --回车 char(13)
union all select N'' union all select N''
union all select N'' union all select N''
union all select N'' union all select N''
union all select N'' union all select N''
union all select N'' union all select N''
union all select N'' union all select N''
union all select N'