如何在SQL中调用标准.NET程序集

时间:2009-11-17 14:58:14

标签: .net sql xml encode decode

我遇到的问题是,我的表中的列包含使用System.Xml.XmlConvert.Encode方法编码的数据。

现在我需要在SQL中操作这些数据,并且没有找到复制System.Xml.XmlConvert.Decode方法的方法。

所以我一直在研究如何在SQL中使用System.XML命名空间来访问此方法,而不必将其包装在我自己的程序集中。这可能吗?即如何直接通过T-SQL访问此程序集?

1 个答案:

答案 0 :(得分:2)

有很多使用.NET for SQL编写加载项的示例。我相信您需要使用SQL 2005或更高版本来创建加载项。

这是一个特别有用的例子。

Creating CLR SQL User Defined Function to Validate Values Using Regular Expressions @ MSDN

在你的情况下,你可能想要编写一个函数,它接受一个byte []并返回一个字符串(decode),以及一个带字符串并返回byte []的相应函数。

实际上我不确定你是否可以直接使用byte [],但你应该能够在SQL中编写一个相应的包装器函数,它可以采用十六进制字符串并将其转换为varbinary()(如果有必要)。

修改

以下链接包含在先前链接中的其他引用的一些更持久的链接,以防它消失。

How to: Create and Run a CLR SQL User-Defined Function @ MSDN

Custom Attributes for CLR Routines @ TechNet