11-12-2024, Saat: 22:02
(Son Düzenleme: 11-12-2024, Saat: 22:06, Düzenleyen: serdar.celik.)
exec SP_MBK_EXCHANGE_RATE '2024-12-06' ilgili tarih için merkez bankası kurlarını alıp kaydeden sp, internette sadece bugün için olanını görmüştüm, bir iki değişiklikle bu hale geldi,
ihtiyacı olan arkadaşlar kullanabilir (Kaynak : hamzatas.medium.com)
EXEC sp_configure 'show advanced options',1
reconfigure with override
EXEC sp_configure 'Ole Automation Procedures',1
reconfigure with override
CREATE TABLE [dbo].[MBK_EXCHANGE_RATE](
[Unit] [varchar](50) NULL,
[Isim] [varchar](50) NULL,
[CurrencyName] [varchar](50) NULL,
[ForexBuying] [float] NULL,
[ForexSelling] [float] NULL,
[BanknoteBuying] [float] NULL,
[BanknoteSelling] [float] NULL,
[TARIH] [date] NULL
) ON [PRIMARY]
GO
CREATE PROCEDURE [dbo].[SP_MBK_EXCHANGE_RATE]
@d varchar(10)
AS
BEGIN
DECLARE @URL AS VARCHAR(250) = 'https://www.tcmb.gov.tr/kurlar/'+left(REPLACE(@d,'-',''), 6)+'/'+RIGHT(@d,2)+SUBSTRING(@d,6,2)+LEFT(@d,4)+'.xml',
@OBJ AS INT,
@RESULT AS INT
EXEC @RESULT = SP_OACREATE 'MSXML2.XMLHttp', @OBJ OUT
EXEC @RESULT = SP_OAMethod @OBJ, 'open', NULL,'GET', @URL, false
EXEC @RESULT = SP_OAMethod @OBJ,SEND,NULL,''
CREATE TABLE #TEMPXML (STRXML VARCHAR(MAX))
INSERT INTO #TEMPXML (STRXML) EXEC @RESULT = SP_OAGetProperty @OBJ,'ResponseXML.xml'
DECLARE @XML AS XML
SELECT @XML = STRXML FROM #TEMPXML
--SELECT @XML
DROP TABLE #TEMPXML
DECLARE @HDOC AS INT
EXEC SP_XML_PREPAREDOCUMENT @HDOC OUTPUT,@XML
-- Tüm veriler siliniyor
--DELETE FROM TERP.dbo.MBK_EXCHANGE_RATE
-- Veriler yeniden ekleniyor
IF (SELECT COUNT(*) FROM TERP.dbo.MBK_EXCHANGE_RATE WHERE TARIH=@d)=0
BEGIN
INSERT TERP.dbo.MBK_EXCHANGE_RATE
SELECT *,@d TARIH FROM OPENXML(@HDOC,'Tarih_Date/Currency')
WITH
(
Unit VARCHAR(50) 'Unit',
Isim VARCHAR(50) 'Isim',
CurrencyName VARCHAR(50) 'CurrencyName',
ForexBuying FLOAT 'ForexBuying',
ForexSelling FLOAT 'ForexSelling',
BanknoteBuying FLOAT 'BanknoteBuying',
BanknoteSelling FLOAT 'BanknoteSelling'
)
END
END
GO
ihtiyacı olan arkadaşlar kullanabilir (Kaynak : hamzatas.medium.com)
EXEC sp_configure 'show advanced options',1
reconfigure with override
EXEC sp_configure 'Ole Automation Procedures',1
reconfigure with override
CREATE TABLE [dbo].[MBK_EXCHANGE_RATE](
[Unit] [varchar](50) NULL,
[Isim] [varchar](50) NULL,
[CurrencyName] [varchar](50) NULL,
[ForexBuying] [float] NULL,
[ForexSelling] [float] NULL,
[BanknoteBuying] [float] NULL,
[BanknoteSelling] [float] NULL,
[TARIH] [date] NULL
) ON [PRIMARY]
GO
CREATE PROCEDURE [dbo].[SP_MBK_EXCHANGE_RATE]
@d varchar(10)
AS
BEGIN
DECLARE @URL AS VARCHAR(250) = 'https://www.tcmb.gov.tr/kurlar/'+left(REPLACE(@d,'-',''), 6)+'/'+RIGHT(@d,2)+SUBSTRING(@d,6,2)+LEFT(@d,4)+'.xml',
@OBJ AS INT,
@RESULT AS INT
EXEC @RESULT = SP_OACREATE 'MSXML2.XMLHttp', @OBJ OUT
EXEC @RESULT = SP_OAMethod @OBJ, 'open', NULL,'GET', @URL, false
EXEC @RESULT = SP_OAMethod @OBJ,SEND,NULL,''
CREATE TABLE #TEMPXML (STRXML VARCHAR(MAX))
INSERT INTO #TEMPXML (STRXML) EXEC @RESULT = SP_OAGetProperty @OBJ,'ResponseXML.xml'
DECLARE @XML AS XML
SELECT @XML = STRXML FROM #TEMPXML
--SELECT @XML
DROP TABLE #TEMPXML
DECLARE @HDOC AS INT
EXEC SP_XML_PREPAREDOCUMENT @HDOC OUTPUT,@XML
-- Tüm veriler siliniyor
--DELETE FROM TERP.dbo.MBK_EXCHANGE_RATE
-- Veriler yeniden ekleniyor
IF (SELECT COUNT(*) FROM TERP.dbo.MBK_EXCHANGE_RATE WHERE TARIH=@d)=0
BEGIN
INSERT TERP.dbo.MBK_EXCHANGE_RATE
SELECT *,@d TARIH FROM OPENXML(@HDOC,'Tarih_Date/Currency')
WITH
(
Unit VARCHAR(50) 'Unit',
Isim VARCHAR(50) 'Isim',
CurrencyName VARCHAR(50) 'CurrencyName',
ForexBuying FLOAT 'ForexBuying',
ForexSelling FLOAT 'ForexSelling',
BanknoteBuying FLOAT 'BanknoteBuying',
BanknoteSelling FLOAT 'BanknoteSelling'
)
END
END
GO

