• 在SQL Server中调用.NET程序集


    使用到这东西完全是个巧合和无奈之举。不小心在数据库中插入了一些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 
    
    GO
    
    CREATE 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关掉。

  • 相关阅读:
    点击按钮icon input同步获取焦点
    修改vue项目中 elementUI input样式
    vue $route 和$router的区别
    vue 路由 vue-router 模式 hash history
    vue 路由跳转
    git 合并某个提交 git cherry-pick
    请求传参 有特殊符号
    前端 组件库 ,js等
    ajax请求成功,返回了数据,但是跳到了error情况
    微信-公众号-网页授权开发
  • 原文地址:https://www.cnblogs.com/nankezhishi/p/2295049.html
Copyright © 2020-2023  润新知