Jeg skal have lavet en kodning til at finde ugyldige emailadresser. Dvs. adresser der indeholder ugyldige tegn samt adresser der mangler @ eller . Jeg har forsøgt mig med en kodning med "not like" UNION "like", hvilket finder bla. adresser med æ,ø,å,/...osv., samt manglende @ og manglende .(punktum). Er der nogen der har et forslag til en sådan kodning?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Jeg glemte at skrive, at jeg arbejder på en Oracle 8. Mine brugere skal dagligt fra SQL+ selv kunne danne fil med brugernavn, ændringsdato, forkert e-mail. Så kodningen skal laves i SQL+. Min base er et godt stykke over 150.000 unikke records.
Der er jo temmelig mange regler at holde styr på. Hvad med at lave en stored funktion der returnerer 0/1 og lave et funktionsbaseret index på kolonnen. Dernæst bare spørge på WHERE funktionsnavn(kolonnenavn)=0
Afhængig af hvor kompliceret du ønsker at lave dine valideringsregler, kunne du oprette en tabel med hhv. ønskede og uønskede tegn i emailadresserne, fx
create table emailchars (validtype varchar2(1) not null, thechar varchar2(1) not null );
og så lave følgende som en del af fx en stored proc:
select distinct a.username, a.emailadr from usertable a, emailchars b where b.validtype = '-' and instr(a.emailadr), b.thechar) > 0 or b.validtype = '+' and instr(a.emailadr), b.thechar) = 0
Tanken er at tegn med validtype - (minus) er de uønskede tegn i emailadr og + de påkrævede. Bemærk at . (punktum) ikke er påkrævet i emailadresser.
Bemærk også brugen af DISTINCT for ikke at få brugernavne, som forbryder sig mod flere regler, gentaget i resultatet.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.