我遇到了一个问题,即我的表中的列包含使用 System.Xml.XmlConvert.Encode 方法编码的数据。
现在我需要在 SQL 中操作这些数据,但还没有找到复制 System.Xml.XmlConvert.Decode 方法的方法。
因此,我一直在研究如何使用 SQL 中的 System.XML 命名空间来访问此方法,而不必将其包装在我自己的程序集中之一。这可能吗?即我怎样才能通过 T-SQL 直接访问这个程序集?
有很多使用 .NET for SQL 编写加载项的示例。我相信您需要拥有 SQL 2005 或更高版本才能创建加载项。
这是一个特别有用的例子。
创建 CLR SQL 用户定义函数以使用正则表达式验证值 @ MSDN
在您的情况下,您可能想要编写一个接受一个字节 [] 并返回一个字符串(解码)的函数,以及一个接受一个字符串并返回一个字节 [] 的相应函数。
实际上我不确定您是否可以直接使用 byte[],但是您应该能够在 SQL 中编写相应的包装函数,该函数可以将十六进制字符串转换为 varbinary(),如果有必要的话。
编辑:
这里有一些更持久的链接,指向之前链接中包含的其他参考资料,以防万一它消失。