SQL Server’da Prosedür ile Text Dosyasına Yazı Yazdırıp Kaydetmek
Herkese merhaba,
Bu yazıda SQL Server’da prosedür ile text dosyasına yazı yazdırıp kaydetme hakkında bilgi vereceğim.
SQL Server’da bazı durumlarda text dosyası oluşturup içine veri eklemek isteyebiliriz.
İşlemi yapmak için ilk olarak test için bir veritabanı oluşturmanız gerekmekte sonrasında aşağıdaki ayarları SQL Server komut ekranında çalıştırmalısınız.
EXEC sp_configure 'show advanced options', 1;
EXEC sp_configure 'Ole Automation Procedures', 1;
RECONFIGURE;
Sonrasında aşağıdaki prosedürü çalıştıralım.
CREATE PROCEDURE TextDosyasinaYaziKaydetme
(
@Yazi AS NVARCHAR(MAX),
@DosyaAdi VARCHAR(200)
)
AS
BEGIN
DECLARE @Object INT,
@Deger INT,
@DosyaID INT;
EXEC @Deger = sp_OACreate 'Scripting.FileSystemObject', @Object OUT;
EXEC @Deger = sp_OAMethod @Object,
'OpenTextFile',
@DosyaID OUT,
@DosyaAdi,
2,
1;
SET @Yazi = REPLACE(REPLACE(REPLACE(@Yazi, '&', '&'), '<', '<'), '>', '>');
EXEC @Deger = sp_OAMethod @DosyaID, 'WriteLine', NULL, @Yazi;
EXEC @Deger = master.dbo.sp_OADestroy @DosyaID;
DECLARE @Ekleme BIT;
SELECT @Ekleme = 0;
IF @Deger <> 0
BEGIN
EXEC @Deger = master.dbo.sp_OAMethod @Object,
'SaveFile',
NULL,
@Yazi,
@DosyaAdi,
@Ekleme;
END;
EXEC @Deger = master.dbo.sp_OADestroy @Object;
END;
--Prosedürün kullanımı
EXEC dbo.TextDosyasinaYaziKaydetme @Yazi = N'Yavuz Selim Kart', -- nvarchar(max)
@DosyaAdi = 'D:\MSSQL.txt'; -- varchar(200)
Not : Windows’un yüklü olduğu sürücüde bu işlemi yaptığınız zaman hata alabilirsiniz.
Ben sürücü olarak D sürücüsünü seçtim siz istediğinizi seçebilirsiniz. Dosya adını da MSSQL olarak belirledim. Burada dosya adı ve dosya uzantısını yazmanız önemli.
Prosedürü oluşturup sonrasında çalıştırdığımız zaman aşağıdaki sonucu alacaksınız.
Dosyanın içinde Yavuz Selim Kart yazıyor.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.