Monday, November 18, 2013

PL/SQL'de "table of index by" Kullanımı

PL/SQL'de şehirlere göre telefon alan kodlarını saklamak için en uygun veri tipi  table of kullanmak olacaktır:

type t_alan_kodu is table of integer index by varchar2(64);
v_tel_kodu t_alan_kodu;

Daha sonra v_tel_kodu değişkenine tüm illerin alan kodlarını anahtar-değer ikililerini aşağıdaki gibi yerleştirmek gerekir:

v_tel_kodu('ADANA') := 322;
v_tel_kodu('K.MARAŞ') := 344;
v_tel_kodu('ADIYAMAN') := 416; 
v_tel_kodu('KOCAELİ') := 262;
v_tel_kodu('AFYON') := 272;
v_tel_kodu('KONYA') := 332;
v_tel_kodu('AĞRI') := 472; 
v_tel_kodu('KÜTAHYA') := 274;
v_tel_kodu('AKSARAY') := 382;  
v_tel_kodu('MALATYA') := 422;
v_tel_kodu('AMASYA') := 358;
v_tel_kodu('MANİSA') := 236;
v_tel_kodu('ANKARA') := 312;
v_tel_kodu('MARDİN') := 482;
v_tel_kodu('ANTALYA') := 242;  
v_tel_kodu('MUĞLA') := 252;
v_tel_kodu('ARDAHAN') := 478;  
v_tel_kodu('MUŞ') := 436;
v_tel_kodu('ARTVİN') := 466;
v_tel_kodu('NEVŞEHİR') := 384;
v_tel_kodu('AYDIN') := 256;
v_tel_kodu('NİĞDE') := 388;
v_tel_kodu('BALIKESİR') := 266;
v_tel_kodu('ORDU') := 452;
v_tel_kodu('BARTIN') := 378;
v_tel_kodu('OSMANİYE') := 328;
v_tel_kodu('BATMAN') := 488;
v_tel_kodu('RİZE') := 464;
v_tel_kodu('BAYBURT') := 458;  
v_tel_kodu('SAKARYA') := 264;
v_tel_kodu('BİLECİK') := 228;  
v_tel_kodu('SAMSUN') := 362;
v_tel_kodu('BİNGÖL') := 426;
v_tel_kodu('SİİRT') := 484;
v_tel_kodu('BİTLİS') := 434;
v_tel_kodu('SİNOP') := 368;
v_tel_kodu('BOLU') := 374; 
v_tel_kodu('SİVAS') := 346;
v_tel_kodu('BURDUR') := 248;
v_tel_kodu('ŞANLIURFA') := 414;
v_tel_kodu('BURSA') := 224;
v_tel_kodu('ŞIRNAK') := 486;
v_tel_kodu('ÇANAKKALE') := 286;
v_tel_kodu('TEKİRDAĞ') := 282;
v_tel_kodu('ÇANKIRI') := 376;  
v_tel_kodu('TOKAT') := 356;
v_tel_kodu('ÇORUM') := 364;
v_tel_kodu('TRABZON') := 462;
v_tel_kodu('DENİZLİ') := 258;  
v_tel_kodu('TUNCELİ') := 428;
v_tel_kodu('DİYARBAKIR') := 412;  
v_tel_kodu('UŞAK') := 276;
v_tel_kodu('DÜZCE') := 380;
v_tel_kodu('VAN') := 432;
v_tel_kodu('EDİRNE') := 284;
v_tel_kodu('YALOVA') := 226;
v_tel_kodu('ELAZIĞ') := 424;
v_tel_kodu('YOZGAT') := 354;
v_tel_kodu('ERZİNCAN') := 446; 
v_tel_kodu('ZONGULDAK') := 372;
v_tel_kodu('ERZURUM') := 442;  
v_tel_kodu('ESKİŞEHİR') := 222;  
v_tel_kodu('GAZİANTEP') := 342;
v_tel_kodu('GİRESUN') := 454;  
v_tel_kodu('GÜMÜŞHANE') := 456;
v_tel_kodu('HAKKARİ') := 438;  
v_tel_kodu('HATAY') := 326;
v_tel_kodu('IĞDIR') := 476;
v_tel_kodu('ISPARTA') := 246;  
v_tel_kodu('İÇEL') := 324;   
v_tel_kodu('İSTANBUL-AVRUPA') := 212;
v_tel_kodu('İSTANBUL-ANADOLU') := 216;
v_tel_kodu('İZMİR') := 232;  
v_tel_kodu('KARABÜK') := 370;
v_tel_kodu('KARAMAN') := 338;
v_tel_kodu('KARS') := 474;
v_tel_kodu('KASTAMONU') := 366;
v_tel_kodu('KAYSERİ  ') := 352;
v_tel_kodu('KIRIKKALE') := 318;  
v_tel_kodu('KIRKLARELİ') := 288;
v_tel_kodu('KIRŞEHİR') := 386;   
v_tel_kodu('KİLİS') := 348;


İllere göre tüm alan kodları listelenmek istenirsek aşağıdaki kod kullanılabilir:


v_city := v_tel_kodu.first;
for i in 1..v_tel_kodu.count loop
    dbms_output.put_line(v_city || ': ' || v_tel_kodu(v_city));
    v_city := v_tel_kodu.next(v_city);
end loop;

No comments:

Post a Comment