BSN genereren met SQL statement

Status
Niet open voor verdere reacties.

mcnaald

Gebruiker
Lid geworden
3 mrt 2015
Berichten
5
Hallo,

Ik ben op zoek naar een mogelijkheid om via mySQL een (11-proef geldige) BSN-nummer te laten genereren. Ik heb al heel wat sites gezocht en ken er genoeg om online te genereren maar dat is niet wat ik kan gebruiken.

Ik weet dat het mogelijk is een nummer te genereren maar nu nog eentje die ook 11-proef is.

Wie kan me helpen?
 
MySQL dingen genereren? hoe zie je dat voor je? Het is een database, er staan dingen in, of er staan dingen niet in. Als je random nummers wil genereren zul je een front-end moeten gebruiken, zoals PHP, Python of zelfs javascript.
 
Ik gebruik dit onderdeel van een bestaande statement voor de generatie van nummers in een database:

to_char( sysdate, 'WW')||lpad(pst_vnr_seq.nextval,3,0 )

Hiermee kan een nummer van 6 cijfers genereren. Deze maakt gebruik van een bestaande view op de database die er is. Ik zou deze willen 'uitbreiden' om een bsn te genereren of een andere vorm van.

Eentje die via javascript kan werken is ook prima.
 
En waar komt: pst_vnr_seq vandaan? Ik neem aan dat dat een "sequence" is? Sequences zijn nummers met een vaste volgorde of uitkomst. Dat werkt heel anders dan generatie voor zoiets als een BSN.

In principe kun je de functie ook direct toevoegen aan de database via UDF (User Defined Function) maar die moeten in C of C++ geschreven worden.

Maar als je de updates in je database maakt via web(JS / PHP) of andere front-end kun je dus eventueel de front-end gebruiken om de nummers te genereren.
 
Het is indd een sequence met vaste nummers. Ik had eigenlijk gehoopt dat een vergelijkbare manier tot een geldig bsn zou kunnen leiden.

Dan wordt het dus een javascript voor een 11 proef bsn nummer.

De achterliggende gedachte is om een bsn te kunnen genereren zodat ik deze kan opnemen in XML-berichtenverkeer via parasoft. Hiermee kan ik de berichten per set uniek maken. Ik gebruik het statement al om andere numerieke gegevens te vullen en wilde dezelfde wijze gebruiken voor het randomizen van het bsn. Maar een aanroep tot javascript of python met een stukje code hierin voor het genereren is ook goed.

Helaas kan dit zelf niet schrijven.
 
Nee, het moet echt een 11-proef geldige BSN zijn. Hierop wordt, tijdens de verwerking van het bericht, op gecontroleerd.
 
In principe zou dit het moeten doen:

[JS]
function myFunction() {
var x = 0;
var y = 0;
while (x < 10000000) {
x = Math.random();
x = Math.floor(x * 100000000);
}
x = x * 10;
var t = x.toString();
for (i = 9 ;i > 1 ; i--) {
y = y + Number(t.charAt(9 - i)) * i;
}
y = y % 11;
x = x + y;
}
[/JS]

Zie ook http://jsfiddle.net/Lfzktk16/2/
 
Ik realiseer me net dat gewoon optellen van x+y soms een probleem op gaat leveren (als het getal eindigt op 0).

Mod 11 kan ook "10" opleveren... en dat vervolgens optellen bij het vorige antwoord veranderd het getal natuurlijk en dat mag niet. Ik kan dat nog wel even aanpassen, mocht je daar niet uitkomen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan