SQL Server’da Oracle INSTR Fonksiyonu Yazmak

Herkese merhaba,

Bu yazıda SQL Server’da Oracle INSTR fonksiyonunu yazmak hakkında bilgi vereceğim.

SQL Server’da bazı durumlarda başka veritabanlarında olan fonksiyonları görmek ve kullanmak isteyebiliriz.

INSTR fonksiyonu nedir?

INSTR fonksiyonu içerisinde parametre olarak verilen metin içerisinde, yine parametre olarak verilen metin parçasını arar ve bulduğu durumda arama sonucunun Index değerini sonuç olarak geri döndürür. Aramanın hangi Index değerinden itibaren başlayacağını seçebileceğimiz bir fonksiyondur.

Aşağıdaki fonksiyon yardımıyla bu işlemi rahatlıkla yapabilirsiniz.

CREATE FUNCTION SQLServer_INSTR
(
    @str VARCHAR(8000),
    @substr VARCHAR(255),
    @start INT,
    @occurrence INT
)
RETURNS INT
AS
BEGIN
    DECLARE @found INT = @occurrence,
            @pos INT = @start;

    WHILE 1 = 1
    BEGIN
        SET @pos = CHARINDEX(@substr, @str, @pos);
        IF @pos IS NULL
           OR @pos = 0
            RETURN @pos;
        IF @found = 1
            BREAK;
        SET @found = @found - 1;
        SET @pos = @pos + 1;
    END;

    RETURN @pos;
END;
GO

--Kullanımı

SELECT dbo.SQLServer_INSTR('Boston', 'o', 1, 2);

Fonksiyonu çalıştırdığınızda aşağıdaki gibi bir sonuç göreceksiniz.

SQL Server'da Oracle INSTR Fonksiyonu Yazmak

Görüldüğü üzere belirttiğimiz tarihten sonra ilk görmek istediğimiz günü görmüş olduk.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

361 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!