SQL Server’da Merkez Bankasından Döviz Kurlarını Getiren Prosedür

Herkese merhaba,

Bu yazıda SQL Server’da merkez bankasından döviz kurlarını getiren prosedür hakkında bilgi vereceğim.

SQL Server’da bazı durumlarda yaptığınız programlarda, uygulamalarda döviz kuruna 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 döviz kurlarını alabilirsiniz.

--Döviz Kuru Getiren Prosedür

CREATE PROC GunlukDovizKuruGetir
AS
BEGIN
    CREATE TABLE #DovizKuru
    (
        Tarih DATE,
        ParaBirimAdeti NVARCHAR(100),
        ParaBirimi NVARCHAR(200),
        ParaBirimiAdi NVARCHAR(200),
        DovizAlis FLOAT,
        DovizSatis FLOAT,
        EfektifAlis FLOAT,
        EfektifSatis FLOAT
    );

    DECLARE @MerkezBankasiURL VARCHAR(500);
    SET @MerkezBankasiURL = 'http://www.tcmb.gov.tr/kurlar/today.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',
                               @MerkezBankasiURL,
                               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 #DovizKuru
    (
        Tarih,
        ParaBirimAdeti,
        ParaBirimi,
        ParaBirimiAdi,
        DovizAlis,
        DovizSatis,
        EfektifAlis,
        EfektifSatis
    )
    SELECT CONVERT(DATE, GETDATE()) AS Tarih,
           *
    FROM
        OPENXML(@HDOC, 'Tarih_Date/Currency')
        WITH
        (
            Unit NVARCHAR(100) 'Unit',
            Isim NVARCHAR(200) 'Isim',
            CurrencyName NVARCHAR(200) 'CurrencyName',
            ForexBuying FLOAT 'ForexBuying',
            ForexSelling FLOAT 'ForexSelling',
            BanknoteBuying FLOAT 'BanknoteBuying',
            BanknoteSelling FLOAT 'BanknoteSelling'
        );

    SELECT *
    FROM #DovizKuru;

END;


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

EXEC GunlukDovizKuruGetir

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 döviz kuru 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

Ads Blocker Image Powered by Code Help Pro
Reklam Eklentisi Kullanıyorsunuz

Lütfen bizlere destek için reklam eklentisi olmadan sitemizi ziyaret edin.

Şimdiden teşekkür ederiz.