4

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

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

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

4

1 回答 1

2

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

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

创建 CLR SQL 用户定义函数以使用正则表达式验证值 @ MSDN

在您的情况下,您可能想要编写一个接受一个字节 [] 并返回一个字符串(解码)的函数,以及一个接受一个字符串并返回一个字节 [] 的相应函数。

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

编辑:

这里有一些更持久的链接,指向之前链接中包含的其他参考资料,以防万一它消失。

如何:创建和运行 CLR SQL 用户定义函数 @ MSDN

CLR 例程的自定义属性 @ TechNet

于 2009-11-17T15:07:19.690 回答