如何在SQL中调用标准的.NET程序集
我遇到了一个问题,即我的表中的列中有使用System.Xml.XmlConvert.Encode方法编码的数据。如何在SQL中调用标准的.NET程序集
现在我需要在SQL中处理这些数据,并没有找到一种方法来复制System.Xml.XmlConvert.Decode方法。
所以我一直在研究如何使用SQL中的System.XML命名空间来访问此方法,而不必将其包装在我自己的程序集中。这可能吗?即如何通过T-SQL直接访问该程序集?
有很多使用.NET for SQL编写加载项的示例。我相信你将需要SQL 2005或更新版本才能创建加载项。
这是一个特别有用的例子。
Creating CLR SQL User Defined Function to Validate Values Using Regular Expressions @ MSDN
在你的情况,你可能会想编写一个函数,它接受一个byte [],并返回一个字符串(解码),与采用一个字符串,并返回一个byte [相应的功能以及] 。
其实我不确定你可以直接使用byte [],但是你应该能够在SQL中编写一个相应的包装函数,它可以接收一个十六进制字符串并将其变为varbinary()(如果需要的话) 。
编辑:
这里有一些更持久链接到其他引用包含在事先联系,以防万一它曾经消失。
How to: Create and Run a CLR SQL User-Defined Function @ MSDN
这使用包装。我不想使用包装类。我试图避免必须使用创建汇编sql代码 – Webcognoscere 2009-11-17 15:14:19
好吧,我现在看到。创建一个SQL项目并在其中添加代码。辉煌,感谢百万meklarian – Webcognoscere 2009-11-17 15:21:50
我会感到惊讶,如果这是可能的。 – Omar 2009-11-17 15:00:32
是的,如果您的SQL Server版本支持集成的CLR环境,则可能。 – Amy 2009-11-17 15:05:26
如果可能,我会如何做到这一点。我不想写一个.NET包装并使用创建汇编位。我想直接访问System.XML名称空间。 – Webcognoscere 2009-11-17 15:12:29