在SQL Server中调用.NET程序集

news/2024/7/3 2:21:47

使用到这东西完全是个巧合和无奈之举。不小心在数据库中插入了一些HttpUtility.UrlEncodeUnicode之后的数据。数据库里的一些字段成了%uxxxx%uxxxx这样的结构。

搜索了半天T-SQL UrlDecode的函数,发现都不支持上面这种Unicode的。自己对T-SQL又不熟悉,时间也很紧迫。

解铃还须系铃人,想到在T-SQL里调用HttpUtility.UrlDecode应该会比较方便。查了一下,大概代码如下。这东西用完就忘,记下来备查吧。

建立一个DLL,一个类,代码如下。

public partial class SystemWeb { [SqlMethod] public static SqlString UrlDecode(string value) { return new SqlString(HttpUtility.UrlDecode(value)); } }

放到数据库服务器上。

之后运行下面的T-SQL代码

 

EXEC sp_configure 'show advanced options','1'; 
GO 
RECONFIGURE; 
GO 
EXEC sp_configure 'clr enabled','1' 
RECONFIGURE; 
GO ALTER DATABASE DBName SET TRUSTWORTHY ON 
GO CREATE ASSEMBLY 
[System.Web] FROM 
'C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\System.Web.dll' 
WITH permission_set = UNSAFE 
GO CREATE ASSEMBLY SQL_CLR_Url 
FROM 'D:\SqlClr.dll' 
WITH PERMISSION_SET = UNSAFE GOCREATE FUNCTION SqlUrlDecode(@urlstr NVARCHAR(4000)) 
RETURNS NVARCHAR(4000) 
AS 
EXTERNAL NAME SQL_CLR_Url.[SqlClr.SystemWeb].UrlDecode 
GO   

然后就可以在T-SQL里调用这个函数了。

select dbo.SqlUrlDecode(Name) from Table

安全起见,屁股擦完了,记得把clr关掉。


http://lihuaxi.xjx100.cn/news/250136.html

相关文章

Android Drawable 详解(教你画画!)

参考 1、Android中的Drawable基础与自定义Drawable2、android中的drawable资源3、Android开发之Shape详细解读 Drawable分类 Noxml标签Class类含义1shapeShapeDrawable特定形状,模型的图样2selectorStateListDrawable不同状态选择不同的图样3layer-listLayerDrawabl…

Oracle数据库精讲与疑难解析(第2版)

Oracle数据库精讲与疑难解析(第2版) 赵振平编著 ISBN978-7-121-20021-2 2013年4月出版 定价:148.00元 1100页 16开 编辑推荐 耗时3年,作者曾为本书辞职在家专心写作 754个实务,件件源自实际工作的经验与教训&#xff0…

SpringMVC + Hibernate-Validator 参数校验

2019独角兽企业重金招聘Python工程师标准>>> 前言: Web开发中,最为常见的场景就是前端表单数据、Json数据与后端实体类的绑定,即使JS能校验并阻止大部分的必填漏填的风险,但并不能防止恶意破坏者修改脚本。因此后端参数…

【编程题】【Scratch二级】2019.09 制作蝙蝠冲关游戏

制作蝙蝠冲关游戏 1.准备工作 (1)导入蝙蝠角色、分别绘制障碍物、大地角色。 2.功能实现 需要达到的效果:通过键盘上的空格键控制蝙蝠往上飞,当碰到障碍物或者大地时,游戏结束,否则得分。 (1)蝙蝠角色:当点击绿旗,蝙蝠自上往下飞,当按下空格键,蝙蝠往上飞,当碰…

修改Activity响应音量控制键修改的音频流

转自:http://rainhomepage.appspot.com/2010/05/hardware-volume-controls-audio-stream-setvolumecontrolstream 当开发多媒体应用或者游戏应用的时候,需要使用音量控制键来设置程序的音量大小。在Android系统中有多中音频流,通过Activity中…

Java中常量定义的几种方式

编程中使用常量的优点: 常量提取出来有利于代码阅读,而且下次再做这种判断不用手写或复制并且提高代码的复用率,方便修改,直接通过常量类就能得到。不过我觉得提取出来并不会有利于代码性能提升,因为常量分配在内存的常…

【编程题】【Scratch二级】2019.03 绘制方形螺旋

绘制方形螺旋 方形螺旋是我们常见的一种螺旋形状,其特点是连续的线段长度均匀增加,例如第一条线段长度为5,第二条长度为10,第三条长度为15,以此类推。 现在请编写程序实现下图中的图案效果: 1. 准备工作 (1)隐藏小猫角色。 2. 功能实现 (1)当绿旗被点击时,以舞…

集成公司内部的多个子系统(兼容B/S和C/S),实现单点登录功能的多系统的统一入口功能...

有一句话也挺有意思的,一直在模仿但从未超越过,文章里的技术也都是相对简单的技术,但是实实在在能解决问题,提高效率。现在人都懒得瞎折腾,能多简单就多简单,谁都不希望总是做一些重复的工作,我…