Gunluk doviz kurlarını httpuritype ve XMLTYPE kullanarak
nasıl çekildiğine bakacağız...
Bir yerlerde xml varsa;
bırakın bunu oracle'ın efsane xmltype paketi yapsın.
ben şimdilik bunu procedure veya function yapmadım.
kodu sql editorunuzde çalıştırdığınızda output olarak
o gunku doviz kurlarını ekrana yazacaktır. siz isterseniz bunu tabloya yazın;
isterseniz kontrol mekanizması yapın... size kalmış... '
--******************************************************************
DECLARE
v_Urlxml httpuritype;
v_xmltype xmltype;
BEGIN
v_Urlxml := httpuritype.createuri('http://www.tcmb.gov.tr/kurlar/today.xml');
v_xmltype := v_Urlxml.getxml();
dbms_output.put_line(RPAD('Tarih', 15, ' ') || RPAD('Doviz Kodu', 15, ' ') || RPAD('Miktar', 15, ' ') ||
RPAD('Alış', 15, ' ') || RPAD('Satış', 15, ' ') || RPAD('E.Alış', 15, ' ') ||
RPAD('E.Satış', 15, ' '));
dbms_output.put_line(RPAD('-------------------', 15, ' ') || RPAD('-------------------', 15, ' ') || RPAD('-------------------', 15, ' ') ||
RPAD('-------------------', 15, ' ') || RPAD('-------------------', 15, ' ') || RPAD('-------------------', 15, ' ') ||
RPAD('-------------------', 15, ' '));
FOR r in (SELECT EXTRACTVALUE(VALUE(x), '/Tarih_Date/@Tarih') tarih,
EXTRACTVALUE(VALUE(p), '/Currency/@CurrencyCode') currency_code,
EXTRACTVALUE(VALUE(p), '/Currency/Unit') unit,
EXTRACTVALUE(VALUE(p), '/Currency/ForexBuying') alis,
EXTRACTVALUE(VALUE(p), '/Currency/ForexSelling') satis,
EXTRACTVALUE(VALUE(p), '/Currency/BanknoteBuying') e_alis,
EXTRACTVALUE(VALUE(p), '/Currency/BanknoteSelling') e_satis
FROM TABLE(XMLSEQUENCE(EXTRACT(v_xmltype, '/Tarih_Date'))) x,
TABLE(XMLSEQUENCE(EXTRACT(VALUE(x), '/Tarih_Date/Currency'))) p
WHERE EXTRACTVALUE(VALUE(p), '/Currency/ForexSelling') IS NOT NULL) LOOP
dbms_output.put_line(RPAD(r.tarih, 15, ' ') || RPAD(r.currency_code, 15, ' ') || RPAD(r.unit, 15, ' ') ||
RPAD(r.alis, 15, ' ') || RPAD(r.satis, 15, ' ') || RPAD(r.e_alis, 15, ' ') ||
RPAD(r.e_satis, 15, ' '));
END LOOP;
END;
/
--******************************************************************
output çıktısıda şu şekilde olacaktır.
Tarih Doviz Kodu Miktar Alış Satış E.Alış E.Satış
---------------------------------------------------------------------------------------------------------
19.09.2014 USD 1 2.2232 2.2272 2.2216 2.2305
19.09.2014 CAD 1 2.0272 2.0364 2.0197 2.0441
19.09.2014 XDR 1 3.3328
19.09.2014 DKK 1 0.38388 0.38577 0.38361 0.38666
19.09.2014 SEK 1 0.31093 0.31415 0.31071 0.31487
19.09.2014 CHF 1 2.3662 2.3814 2.3627 2.385
19.09.2014 NOK 1 0.34984 0.35219 0.3496 0.353
19.09.2014 JPY 100 2.0359 2.0494 2.0284 2.0572
19.09.2014 SAR 1 0.59277 0.59384 0.58832 0.59829
19.09.2014 KWD 1 7.6959 7.7966 7.5805 7.9135
19.09.2014 AUD 1 1.9872 2.0001 1.9781 2.0121
19.09.2014 EUR 1 2.8624 2.8675 2.8604 2.8718
19.09.2014 GBP 1 3.6402 3.6592 3.6377 3.6647
19.09.2014 RUB 1 0.05748 0.05823
19.09.2014 RON 1 0.64644 0.6549
19.09.2014 PKR 1 0.02153 0.02181
19.09.2014 IRR 100 0.0083 0.00841
19.09.2014 CNY 1 0.36003 0.36474
19.09.2014 BGN 1 1.4553 1.4743