我遇到的问题是,我的表中的列包含使用System.Xml.XmlConvert.Encode方法编码的数据。
现在我需要在SQL中操作这些数据,并且没有找到复制System.Xml.XmlConvert.Decode方法的方法。
所以我一直在研究如何在SQL中使用System.XML命名空间来访问此方法,而不必将其包装在我自己的程序集中。这可能吗?即如何直接通过T-SQL访问此程序集?
答案 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