170 likes | 372 Views
Funkcje znakowe. Funkcje numeryczne (wybrane). Funkcje związane z datą (wybrane). Funkcje konwersji (wybrane). Operatory. Typy danych (wybrane). Maski DATY(wybrane ). Migawki. create or replace function pl(pesel in char) return char is cyfra number; begin
E N D
Funkcje związane z datą (wybrane) Funkcje konwersji (wybrane)
create or replace function pl(pesel in char) return char is cyfra number; begin cyfra := to_number(substr(pesel,10,1)); if (cyfra/2)=floor(cyfra/2) then return 'kobieta'; else return 'mężczyzna'; end if; end;
create or replace function dataur(pesel in char) return date is rok varchar(2); mies varchar(2); dzien varchar(2); data_txt varchar(10); num_mies number; begin rok:=substr(pesel,1,2); mies:=substr(pesel,3,2); dzien:=substr(pesel,5,2); num_mies:=to_number(mies);
if num_mies<20 then data_txt:='19'||rok||'-'||mies||'-'||dzien; else num_mies:=num_mies-20; if num_mies<10 then mies:='0'||to_char(num_mies); else mies:=to_char(num_mies); end if; data_txt:='20'||rok||'-'||mies||'-'||dzien; end if; return to_date(data_txt,'YYYY-MM-DD'); end;
create or replace function podatek(zarobek in number) return number is podatek number; begin if zarobek<2727 then podatek:=0; elsif zarobek<37024 then podatek:=0.19*zarobek-518.16; elsif zarobek<74048 then podatek:=6516.40+0.30*(zarobek-37024); else podatek:=17623.60+0.40*(zarobek-74048); end if; return round(podatek,1); end;
create or replace function test(pesel in char) return char is suma number; i number; wagi varchar(10); begin wagi:='1379137913';
for i in 1..10 loop suma:=suma+to_number(substr(pesel,i,1))*to_number(substr(wagi,i,1)); end loop; suma:=10-mod(suma,10); if suma=10 then suma:='0'; end if; if suma=to_number(substr(pesel,11,1)) then return 'OK'; else return 'BŁĄD'; end if; end;