SQL Server’da Özelleştirilmiş PRINT Prosedürü

SQL Server'da Özelleştirilmiş PRINT Prosedürü
SQL Server'da Özelleştirilmiş PRINT Prosedürü

Herkese merhaba. Bu yazıda SQL Server’da özelleştirilmiş PRINT prosedürü ile ilgili bilgi vermeye çalışacağım.

SQL Server’da PRINT ifadesi 8000 karaktere kadar yazdırma işlemi yapar. Peki yazdığınız dinamik sorguların içeriği 8000 karakterden uzunsa ne yapacaksınız?

SQL Server’da bazı durumlarda 8000 karakterden daha fazla olan ifadeleri PRINT ile yazdırmak isteyebilirsiniz.

Aşağıdaki prosedürü kullanarak sizler de bu işlemi rahatlıkla yapabilirsiniz.

CREATE PROCEDURE LONGPRINT
    @String NVARCHAR(MAX)
AS
BEGIN
    BEGIN TRY

    DECLARE @CurrentEnd BIGINT;
    DECLARE @Offset TINYINT; 
    SET @String = replace(replace(@String, CHAR(13) + CHAR(10), CHAR(10)), CHAR(13), CHAR(10))

    WHILE LEN(@String) > 1
    BEGIN
        IF CHARINDEX(CHAR(10), @String) BETWEEN 1 AND 4000
        BEGIN
            SET @CurrentEnd =  CHARINDEX(CHAR(10), @String) -1
            SET @Offset = 2
        END
        ELSE
        BEGIN
            SET @CurrentEnd = 4000
            SET @Offset = 1
        END   
        PRINT SUBSTRING(@String, 1, @CurrentEnd) 
        SET @String = SUBSTRING(@String, @CurrentEnd + @Offset, LEN(@String))   
    END 
    END TRY
    BEGIN CATCH
        DECLARE @ErrorMessage VARCHAR(4000)
        SELECT @ErrorMessage = ERROR_MESSAGE()    
        RAISERROR(@ErrorMessage,16,1)
    END CATCH
END

--Kullanımı

DECLARE @Degisken VARCHAR(MAX)
SET @Degisken = REPLICATE('x', 60000)
EXEC LONGPRINT @Degisken

Yukarıdaki prosedürü oluşturup kodu çalıştırınca aşağıdakine benzer bir sonuç göreceksiniz.

SQL Server'da Özelleştirilmiş PRINT Prosedürü

Görüldüğü üzere 6000 karakteri LONGPRINT prosedürü ile yazdırmış olduk.

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

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