CREATE FUNCTION [dbo].[RegexReplace]
(
@string VARCHAR(MAX), --被替换的字符串
@pattern VARCHAR(255), --替换模板
@replacestr VARCHAR(255), --替换后的字符串
@IgnoreCase INT = 0 --0区分大小写 1不区分大小写
)
RETURNS VARCHAR(8000)
AS
BEGIN
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
END
----保证正常运行的话,需要将Ole Automation Procedures选项置为1
--EXEC sp_configure 'show advanced options', 1
--RECONFIGURE WITH OVERRIDE
--EXEC sp_configure 'Ole Automation Procedures', 1
--RECONFIGURE WITH OVERRIDE
--匹配字符串'\b字符串'
--匹配html/XMl'\<[^<>]*\>'
--匹配ASCII码'[\x01-\x3f]' 注意这里过滤了所有ASCII码的特殊符号包括?()等根据需求可以自己调节,
--SELECT ASCII(' ') 用于查找特殊符号的ASCII值
--SELECT CHAR(0x03) 用于显示特殊符号
GO

  

CREATE  FUNCTION [dbo].[去除乱码] ( @str NVARCHAR(100) )
RETURNS VARCHAR(100)
AS
BEGIN
RETURN REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(@str,
NCHAR(0x00), ''),
NCHAR(0x01), ''),
NCHAR(0x02), ''),
NCHAR(0x03), ''),
NCHAR(0x04), ''),
NCHAR(0x05), ''),
NCHAR(0x06), ''),
NCHAR(0x07), ''),
NCHAR(0x08), ''),
NCHAR(0x0b), ''),
NCHAR(0x0c), ''),
NCHAR(0x0e), ''),
NCHAR(0x0f), ''),
NCHAR(0x10), ''),
NCHAR(0x11), ''),
NCHAR(0x12), ''),
NCHAR(0x13), ''),
NCHAR(0x14), ''),
NCHAR(0x15), ''),
NCHAR(0x16), ''),
NCHAR(0x17), ''),
NCHAR(0x18), ''),
NCHAR(0x19), ''),
NCHAR(0x1A), ''),
NCHAR(0x1B), ''),
NCHAR(0x1C), ''),
NCHAR(0x1D), ''),
NCHAR(0x1E), ''),
NCHAR(0x1F), ''),
NCHAR(10), ''),
NCHAR(32), ''),
NCHAR(13), ''),
NCHAR(9), '');
END; GO

  以上是二种去除数据中乱码的方式可以根据需求自己更改,第一中利用增则表达式的匹配区间并且需要开启额外功能(sp_OAcreate功能相当强大可以开启SQL server调用Web Service),第二种是针对个例的,下面是测试脚本

SELECT dbo.RegexReplace( '成都市武侯0H倎× (? 4普陀区甘泉街道甘泉路241弄25号302室               0','[\x01-\x20]','',0);
SELECT dbo.去除乱码( '成都市武侯0H倎× (? 4普陀区甘泉街道甘泉路241弄25号302室 0');
SELECT ASCII(' ')
SELECT CHAR(0x03)

 另外,摘自网上的SQL Server基本的正则表达式用法例子

CREATE FUNCTION [dbo].[提取汉字] ( @S NVARCHAR(100) )
RETURNS VARCHAR(100)
AS
BEGIN
WHILE PATINDEX('%[^吖-座]%', @S) > 0
SET @S = STUFF(@S, PATINDEX('%[^吖-座]%', @S), 1,
N'');
RETURN @S;
END; GO CREATE FUNCTION [dbo].[提取数字] ( @S VARCHAR(100) )
RETURNS VARCHAR(100)
AS
BEGIN
WHILE PATINDEX('%[^0-9]%', @S) > 0
BEGIN
SET @S = STUFF(@S, PATINDEX('%[^0-9]%', @S),
1, '');
END;
RETURN @S;
END; GO GO
CREATE FUNCTION [dbo].[提取字母] ( @S VARCHAR(100) )
RETURNS VARCHAR(100)
AS
BEGIN
WHILE PATINDEX('%[^a-z]%', @S) > 0
BEGIN
SET @S = STUFF(@S, PATINDEX('%[^a-z]%', @S),
1, '');
END;
RETURN @S;
END;

  * 正则表达式符号^在SQL server中在[]外不是匹配第一个字符,这个与一般正则表达式有所区别,一般正则表达式^[0-9]意思是匹配第一个是0-9的数字,[^0-9]匹配不是0-9的数字

*SQL Server访问Web Service学习连接:https://www.cnblogs.com/davidhou/p/5868136.html

SQL Server乱码处理(ASCII)的更多相关文章

  1. python链接sql server 乱码问题

    import pymssql import sys import os reload(sys) sys.setdefaultencoding('utf-8') os.environ['NLS_LANG ...

  2. SQL server函数大全

    函数类别 作用 聚合函数 执行的操作是将多个值合并为一个值.例如 COUNT.SUM.MIN 和MAX. 配置函数 是一种标量函数,可返回有关配置设置的信息. 转换函数 将值从一种数据类型转换为另一种 ...

  3. SQL SERVER 函数大全[转]

    SQL Server 函数大全 一旦成功地从表中检索出数据,就需要进一步操纵这些数据,以获得有用或有意义的结果.这些要求包括:执行计算与数学运算.转换数据.解析数值.组合值和聚合一个范围内的值等. 下 ...

  4. 【转载】SQL SERVER 函数大全

    SQL Server 函数大全 一旦成功地从表中检索出数据,就需要进一步操纵这些数据,以获得有用或有意义的结果.这些要求包括:执行计算与数学运算.转换数据.解析数值.组合值和聚合一个范围内的值等. 下 ...

  5. SQL Server 函数大全

    本文链接:https://blog.csdn.net/qq_15028299/article/details/81330854SQL2008 表达式:是常量.变量.列或函数等与运算符的任意组合.htt ...

  6. delphi 2010 导出sql server 数据到DBF乱码问题

    近日,由于业务需要导出sql server 数据到DBF文件,要查询多表记录,并适当处理后生成导出DBF文件,系统使用delphi2010平台开发. 首先按要求在VFP里创建DBF表,字段数有240个 ...

  7. asp.net插入sql server 中文乱码问题解决方案

    创建数据库的代码---创建promary表 create table promary ( proID int primary key, proName varchar(50) not null ) 出 ...

  8. 使用SQL Server Driver for PHP解决PHP连接MSSQL乱码的问题

    原文 使用SQL Server Driver for PHP解决PHP连接MSSQL乱码的问题 最近帮客户写了一个.net商城网站的发布接口,大家都知道.net一般都使用MSSQL数据库,但鱼丸不会. ...

  9. phpstudy连接SQL Server 2008数据库 以及 php使用sql server出现乱码解决方式

    开始也尝试自己配置php安装环境,找到一个详细的百度经验http://jingyan.baidu.com/article/154b46315242b328ca8f4101.html,前面有问题也一一去 ...

随机推荐

  1. java代码-----------java中的windowAdapter的实例

    总结:我知道他是一专多能型.很优秀~~~~~~~~~~~.好幸福啊 package com.a.b; import java.awt.Color; import java.awt.event.Wind ...

  2. HBuilder使用技巧

    ctrl+ Tab  切换 ctrl + shift + D 查找所写的函数

  3. linux 挂载硬盘

    fdisk -l mkfs.ext4 /dev/vdb mkdir /data mount -t ext4 /dev/vdb /data 编辑/etc/fstab /dev/vdb /data ext ...

  4. 用一两句话说一下你对“盒模型”这个概念的理解,和它都涉及到哪些css属性

    网页设计中常听的属性名:内容(content).填充(padding).边框(border).边界(margin), CSS盒子模式都具备这些属性. 这些属性我们可以用日常生活中的常见事物——盒子作一 ...

  5. pcs与crmsh命令比较

    一.概念 1.crmsh This project is not part of the GNU Project. Pacemaker command line interface for manag ...

  6. storm集群配置以及java编写拓扑例子

    storm集群配置 安装 修改配置文件 使用java编写拓扑 storm集群配置 storm配置相当简单 安装 tar -zxvf apache-storm-1.2.2.tar.gz rm apach ...

  7. Catch That Cow(bfs)

    Description Farmer John has been informed of the location of a fugitive cow and wants to catch her i ...

  8. 6410中的PWM&nbsp;定时器

    看了OK6410的手册,感觉晕晕的. 需要整理一下思路. 我觉得主要的知道下面这几个内容吧. 1. 定时器的电路结构. 2. 定时器的工作原理是什么.定时器如何来使用.{使用的时序是什么,在时间轴上各 ...

  9. 【原】Coursera—Andrew Ng斯坦福机器学习(0)——课程地址和软件下载

    斯坦福大学机器学习 课程信息 机器学习是一门研究在非特定编程条件下让计算机采取行动的学科.最近二十年,机器学习为我们带来了自动驾驶汽车.实用的语音识别.高效的网络搜索,让我们对人类基因的解读能力大大提 ...

  10. 下载并保存图片Python2.7

    #!/usr/bin/env python# -*- encoding: utf-8 -*-import urllib2import os def save_img(img_url,file_name ...