dirk postma

mijn aantekeningen . . .

901 - Elfproef

Aug 6, 2016 - Comments - coda

Elfproef

Document info
Laatst bijgewerkt 2016-08

Doel

De elfproef werd gebruikt voor het controleren van onze oude 9 cijferige banknummers. Met een rapportage werd dan periodiek gecontroleerd welke nummers fout waren. De door ons gebruikte software controleerde hier niet op bij de invoer.

Oracle functie

Onderstaand de Oracle functie.

CREATE OR REPLACE function lee_bankelfproef (extern_rekening char)
          return char is
          rekening  varchar2(10);
          controle  number;
begin
    rekening := ltrim(rtrim(extern_rekening)) ;
    IF length(rekening) = 9 then
        controle :=            substr(rekening, 9, 1) * 1 ;
        controle := controle + substr(rekening, 8, 1) * 2 ;
        controle := controle + substr(rekening, 7, 1) * 3 ;
        controle := controle + substr(rekening, 6, 1) * 4 ;
        controle := controle + substr(rekening, 5, 1) * 5 ;
        controle := controle + substr(rekening, 4, 1) * 6 ;
        controle := controle + substr(rekening, 3, 1) * 7 ;
        controle := controle + substr(rekening, 2, 1) * 8 ;
        controle := controle + substr(rekening, 1, 1) * 9 ;

        controle :=   controle - (floor(controle / 11) * 11);
        if controle = 0 then
            return 'goed' ;
        else
            return 'fout' ;
        end if ;
    else
        return 'nvt' ;
    end if;

exception
    when others then
        return 'probleem met oracle' ;
end ;
/

Gebruik

Het aanroepen, cq. gebruik van de functie gaat dan als volgt.

select lee_bankelfproef('123456789') from dual ;

Vervolgens wordt de waarde goed of fout teruggegeven.


Tags: coda Oracle rapportages elfproef

comments powered by Disqus