2

我正在尝试创建一个 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 的 DB 表中。使用 CLR UDF。

4

1 回答 1

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
于 2009-04-09T21:07:03.260 回答