13 Mart 2018 Salı

MSSQL'de CLR UDF (User Defined Function) oluşturma

MSSQL Sunucuda kendimiz VS C#la yazdığımız bir dll'i sorgularda kullanabileceğimiz bir fonksiyon olarak tanımlayabiliriz.

Öncelikle VS'da bir library projesi açacağız.
Bunun içinde class'ımızı oluşturup derleyeceğiz (build edilecek).
örneğin bu benim tam kelimeleri bulmak için kullanacağım bir UDF.
using System.Text.RegularExpressions;

public class xxStrings
{
    public static int FindWord(string pattern, string text, bool wholeWord=false, bool ignoreCase=false)
    {
        string s;
        if (wholeWord)
        {
            s = "\b(" + pattern + ")\b";
        }
        else
        {
            s = pattern;
        }

        var r = new RegexOptions();
        r = RegexOptions.None;

        if (ignoreCase)
        {
            r = RegexOptions.IgnoreCase;
        }

        var i = Regex.Match(text, s, r);
        if (i.Success)
       
        {
          return i.Index;
        }
        else
        {
          return -1;
        }
    }
}

Bunun sonrasında, SQL Management Studio açılır ve bir SQL penceresinde bu fonksiyonu SQL'e kaydetmek için burada şu kodlar yazılır.

CREATE ASSEMBLY FindWord FROM 'c:\buraya dosya yolu yazılacak\FindWord.dll';
GO

CREATE FUNCTION FindWord()  RETURNS INT 
AS EXTERNAL NAME FirstUdf.T.ReturnOrderCount; 
GO


Hiç yorum yok:

Yorum Gönder