SQL Server’da Oracle INITCAP Fonksiyonu Yazmak

Herkese merhaba,

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

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

INITCAP fonksiyonu nedir?

INITCAP fonksiyonu parametre olarak verilen metin içerisindeki sözlerin ilk karakterini büyük harfe çevirirken, diğer karakterleri de küçük harf yapar.

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

CREATE FUNCTION SQLServer_InitCap
(
    @InputString VARCHAR(4000)
)
RETURNS VARCHAR(4000)
AS
BEGIN

    DECLARE @Index INT;
    DECLARE @Char CHAR(1);
    DECLARE @PrevChar CHAR(1);
    DECLARE @OutputString VARCHAR(255);

    SET @OutputString = LOWER(@InputString);
    SET @Index = 1;

    WHILE @Index <= LEN(@InputString)
    BEGIN
        SET @Char = SUBSTRING(@InputString, @Index, 1);
        SET @PrevChar = CASE
                            WHEN @Index = 1 THEN
                                ' '
                            ELSE
                                SUBSTRING(@InputString, @Index - 1, 1)
                        END;

        IF @PrevChar IN ( ' ', ';', ':', '!', '?', ',', '.', '_', '-', '/', '&', '''', '(' )
        BEGIN
            IF @PrevChar != ''''
               OR UPPER(@Char) != 'S'
                SET @OutputString = STUFF(@OutputString, @Index, 1, UPPER(@Char));
        END;

        SET @Index = @Index + 1;
    END;

    RETURN @OutputString;

END;
GO

--Kullanımı

SELECT dbo.SQLServer_InitCap('yavuz selim kart')

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

SQL Server'da Oracle INITCAP Fonksiyonu Yazmak

Görüldüğü üzere metin içerisindeki sözlerin ilk karakterini büyük harfe çevrildiğini görmüş olduk.

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

355 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!