2009-04-02 3 views
2

"Mike | John | Smith"와 같이 분리 된 문자열 값을 사용하는 CLR UDF를 만들려고합니다. UDF에서 값을 파싱하여 DataTable에 반환합니다. C# 코드를 잘 빌드하고 문제없이 DLL을 가리키는 SQL 어셈블리를 만들 수 있습니다.CLR SQL Server UDF 질문

이 원본에 따르면 SQL Server에 Transact SQL 요청을 CLR 기능과 일치시키는 방법을 알려주려고 할 때 문제가 발생합니다. http://www.setfocus.com/technicalarticles/clrfunctionforsqlserver_2.aspx

만약 내가 그렇게해야한다면? 기본적으로 문자열을 가져 와서 분리 된 값을 구문 분석하여 FN, MN, LN의 세 가지 열이있는 DB 테이블에 저장하려고합니다. CLR UDF를 사용합니다.

답변

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