SQL Server’da Meteorolojiden İl Merkezlerinin Hava Durumu Bilgisini Getiren Prosedür

Herkese merhaba,

Bu yazıda SQL Server’da meteorolojiden il merkezlerinin hava durumu bilgisini getiren prosedür hakkında bilgi vereceğim.

SQL Server’da bazı durumlarda yaptığınız programlarda, uygulamalarda hava durumuna ihtiyaç duyabilirsiniz.

İlk olarak aşağıdaki ayarları SQL Server komut ekranında çalıştırmalısınız.

EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
EXEC sp_configure 'Ole Automation Procedures', 1;
RECONFIGURE;
GO

Sonrasında aşağıdaki prosedürü bulunduğunuz günde çalıştırarak ilgili güne ait il merkezlerinin hava durumu bilgisine ulaşabilirsiniz.

CREATE PROC IlMerkezlerininHavaDurumu
AS
BEGIN
    CREATE TABLE #HavaDurumu
    (
        Tarih DATE,
        Bolge NVARCHAR(100),
        Periyot NVARCHAR(100),
        Il NVARCHAR(100),
        Merkez NVARCHAR(100),
        Durum NVARCHAR(500),
        MaksimumSicaklik INT,
        MinimumSicaklik INT
    );


    DECLARE @HavaDurumuURL VARCHAR(500);
    SET @HavaDurumuURL = 'https://www.mgm.gov.tr/FTPDATA/analiz/sonSOA.xml';
    DECLARE @OBJ AS INT;
    DECLARE @RESULT AS INT;
    EXEC @RESULT = sp_OACreate 'MSXML2.XMLHTTP', @OBJ OUT;
    EXEC @RESULT = sp_OAMethod @OBJ,
                               'open',
                               NULL,
                               'GET',
                               @HavaDurumuURL,
                               false;
    EXEC @RESULT = sp_OAMethod @OBJ, send, NULL, '';

    CREATE TABLE #XML
    (
        XMLDegeri VARCHAR(MAX)
    );

    INSERT INTO #XML
    (
        XMLDegeri
    )
    EXEC @RESULT = sp_OAGetProperty @OBJ, 'responseXML.xml';

    DECLARE @XMLYazi XML;
    SELECT @XMLYazi = XMLDegeri
    FROM #XML;
    DROP TABLE #XML;
    DECLARE @HDOC AS INT;
    EXEC sp_xml_preparedocument @HDOC OUTPUT, @XMLYazi;

    INSERT INTO #HavaDurumu
    (
        Tarih,
        Bolge,
        Periyot,
        Il,
        Merkez,
        Durum,
        MaksimumSicaklik,
        MinimumSicaklik
    )
    SELECT CONVERT(DATE, GETDATE()) AS Tarih,
           Bolge,
           Peryot,
           ili,
           Merkez,
           Durum,
           Mak,
           [Min]
    FROM
        OPENXML(@HDOC, 'SOA/sehirler')
        WITH
        (
            Bolge NVARCHAR(100) 'Bolge',
            Peryot NVARCHAR(100) 'Peryot',
            ili NVARCHAR(100) 'ili',
            Merkez NVARCHAR(100) 'Merkez',
            Durum NVARCHAR(500) 'Durum',
            Mak INT 'Mak',
            [Min] INT 'Min'
        );

    SELECT *
    FROM #HavaDurumu;

END;

--Prosedürün çalıştırılması

EXEC dbo.IlMerkezlerininHavaDurumu;

Prosedürü oluşturup çalıştırdığınız zaman aşağıdaki gibi bir sonuç alacaksınız.

Görüldüğü üzere ilgili güne ait il merkezlerinin hava durumu bilgileri gelmiş oldu.

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

SQL Server Eğitimleri Kanalına Abone Olun

Şunlar makaleler de hoşunuza gidebilir