我正在尝试创建一个CLR UDF,它接受一个像“Mike | John | Smith”这样分隔的字符串值。在UDF中,我解析了值并将它们返回到DataTable中。 C#代码构建正常,我可以在SQL中创建指向DLL的程序集没有问题。
根据此消息来源,当我尝试将问题告诉SQL Server如何将Transact SQL请求与CLR函数进行匹配时,会出现问题。 http://www.setfocus.com/technicalarticles/clrfunctionforsqlserver_2.aspx
或者我是否必须这样做?基本上我想接受一个字符串,解析出分离的值并将它们放在一个带有3个不同列的数据库表中,FN,MN,LN。使用CLR UDF。
答案 0 :(得分:3)
您需要具有调用程序集的SQL存储过程或函数。 SQL存储过程和.NET函数的参数需要匹配。例如,如果您的.NET程序集具有以下功能:
[SqlProcedure]
public static void ProcessData(string myString_)
{
}
您的SQL存储过程或函数必须如下所示:
CREATE PROCEDURE dbo.ProcessMyData (@InputText AS NVARCHAR(MAX))
AS EXTERNAL NAME SqlAssemblyName.ClassName.ProcessData
GO