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

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

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

有帮助吗?

解决方案

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

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

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

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

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

编辑:

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

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

CLR 例程的自定义属性 @ TechNet

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top