|
Deze keer een handigheidje om te controleren of er een
juist bank/gironummer is ingevoerd
Function bankcontrole (p_banknummer in nummer)
return boolean is
v_produkt1 number;
v_produkt2 number;
v_nummer varchar2(10);
BEGIN
v_nummer := lpad(to_char(p_banknummer),10,'0');
v_produkt1 := round(((to_number(substr(v_nummer,1,1))
* 10)
+ (to_number(substr(v_nummer,2,1)) * 9)
+ (to_number(substr(v_nummer,3,1)) * 8)
+ (to_number(substr(v_nummer,4,1)) * 7)
+ (to_number(substr(v_nummer,5,1)) * 6)
+ (to_number(substr(v_nummer,6,1)) * 5)
+ (to_number(substr(v_nummer,7,1)) * 4)
+ (to_number(substr(v_nummer,8,1)) * 3)
+ (to_number(substr(v_nummer,9,1)) * 2)
+ (to_number(substr(v_nummer,10,1)) * 1))
/ 11)
* 11
;
v_produkt2 := ((to_number(substr(v_nummer,1,1)) * 10)
+ (to_number(substr(v_nummer,2,1)) * 9)
+ (to_number(substr(v_nummer,3,1)) * 8)
+ (to_number(substr(v_nummer,4,1)) * 7)
+ (to_number(substr(v_nummer,5,1)) * 6)
+ (to_number(substr(v_nummer,6,1)) * 5)
+ (to_number(substr(v_nummer,7,1)) * 4)
+ (to_number(substr(v_nummer,8,1)) * 3)
+ (to_number(substr(v_nummer,9,1)) * 2)
+ (to_number(substr(v_nummer,10,1)) * 1))
;
if v_produkt1 <> v_produkt2
then
return (false);
else
return (true);
end if;
END;
Vanzelfsprekend houdt de redactie zich ook deze keer
aanbevolen voor tips en trucs van lezers. U kent inmiddels
de weg? Stuur even een mailtje aan Wessel van Alphen
met uw bijdrage (w.van.alphen@centor.nl)
en alles komt prima voor elkaar.
|