- Heb je zelf al wat bedacht?
- In wat voor formaat sla je je postcodes op?
- In wat voor formaat sla je je postcodes op?
De postcodes worden in een VARCHAR2(6) in het database gezet.
Ik zou echter niet weten hoe ik hier een constraint voor zou kunnen maken.
En ik kan ook niet echt wijs uit de help die bij oracle zit (kan zo iets trouwens helemaal niet vinden in de help.)
Ik zou echter niet weten hoe ik hier een constraint voor zou kunnen maken.
En ik kan ook niet echt wijs uit de help die bij oracle zit (kan zo iets trouwens helemaal niet vinden in de help.)
Een nog betere topic titel gegeven (in overleg met ACM)
Constraint dat je moet gaan leggen is dat de eerste 4 een getal moet wezen, en de laatste twee letters ( hoofd of klein ), althans ik neem aan dat je alleen nederlandse postcodes wilt hebben.
Constraint dat je moet gaan leggen is dat de eerste 4 een getal moet wezen, en de laatste twee letters ( hoofd of klein ), althans ik neem aan dat je alleen nederlandse postcodes wilt hebben.
Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR
En wil je ook de postBUSSEN uitfilteren, dan mag ie ook niet op een 0 eindigenOp vrijdag 25 januari 2002 15:47 schreef raptorix het volgende:
En mag niet met 0 beginnen
SIZE does matter.
"You're go at throttle up!"
De 4 getallen mag niet eindigen op een 0 bedoel je.. de postcode eindigt ALTIJD met een letterOp vrijdag 25 januari 2002 15:57 schreef Skinny het volgende:
En wil je ook de postBUSSEN uitfilteren, dan mag ie ook niet op een 0 eindigen
Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR
Maak het niet al te moeilijk. Als er maar 4 cijfers en 2letters staan is het goed.
Psies, gewoon een kolom voor de 4 cijfers en een kolom voor de 2 letter. De ene is dan number(4) en de andere char(2). Klaar.
I think there is a world market for maybe five computers ... six tops. Thomas Watson, chairman IBM, 1943
WiseGuy ! (tis vrijdag hoor !Op vrijdag 25 januari 2002 16:01 schreef dusty het volgende:
[..]
De 4 getallen mag niet eindigen op een 0 bedoel je.. de postcode eindigt ALTIJD met een letter
[edit]Ohnee, lite-mod!
SIZE does matter.
"You're go at throttle up!"
Yeh thanks, en dan 3/4 van mij database ontwerp aan moeten passen.Op vrijdag 25 januari 2002 18:22 schreef -=Arjan=- het volgende:
Psies, gewoon een kolom voor de 4 cijfers en een kolom voor de 2 letter. De ene is dan number(4) en de andere char(2). Klaar.
Euh, als je dan ook nog uitlegt wat er nu niet meer lukt?Op maandag 28 januari 2002 17:46 schreef Crash_neo het volgende:
whelp....
weet niemand een oplossing?
Of uitlegt wat je wel al hebt?
Verwijderd
Het lijkt erop dat Oracle niet je vakgebied is anders had je het wel geweten of inmiddels gevonden.
(NFI)
Gaat het hier om een zgn 'unique constraint', of misschien alleen om een 'check', oftewel controle waarin je kijkt of de layout van de postcode goed is? Daarnaast vraag ik me af of je die postcode wil controleren op bestaanbaarheid en evt icm het adres (daar heb je dus een regelmatig bijgewerkte KPN postcodetabel voor nodig).
Het lijkt me niet handig om de cijfers en letters in een aparte kolom te zetten omdat je dan natgaat als je een buitenlandse postcode in wil voeren. Bovendien levert het meer werk dan profijt op.
Gaat het hier om een zgn 'unique constraint', of misschien alleen om een 'check', oftewel controle waarin je kijkt of de layout van de postcode goed is? Daarnaast vraag ik me af of je die postcode wil controleren op bestaanbaarheid en evt icm het adres (daar heb je dus een regelmatig bijgewerkte KPN postcodetabel voor nodig).
Het lijkt me niet handig om de cijfers en letters in een aparte kolom te zetten omdat je dan natgaat als je een buitenlandse postcode in wil voeren. Bovendien levert het meer werk dan profijt op.
Oracle is idd niet mijn vakgebied 
Het gaat er eigenlijk alleen maar om dat mensen niet verschrikkelijk veel onzin kunnen invullen.(meer als waarschuwing op typefouten dan dat de postcode ook echt moet bestaat.) En het is alleen voor nederlandse postcodes.
Het gaat er eigenlijk alleen maar om dat mensen niet verschrikkelijk veel onzin kunnen invullen.(meer als waarschuwing op typefouten dan dat de postcode ook echt moet bestaat.) En het is alleen voor nederlandse postcodes.
waarom check je 't niet gewoon in je code?
code:
1
2
3
| if (!ereg ("([0-9]{4})-([a-zA-Z]{2})", $postcode)) {
echo "foutieve invoer";
} |
Verwijderd
Is dat Unix ofzo? Je kan toch gewoon een check-constraint op de tabel maken, of in het invoerschermpje? Gewoon met pl/sql.
En daar doe je een controle in zoals:
-----------------
function format_postcode (p_postcode in varchar2) RETURN varchar2
is
l_postcode varchar2(7) := replace(p_postcode,' ');
l_postcode_lengte number(1);
l_postcode_cijfers number(4);
l_postcode_letters varchar2(2);
l_postcode_lengte := nvl(length(l_postcode),0);
--
if l_postcode_lengte = 6
then
l_postcode_cijfers := substr(l_postcode,1,4);
l_postcode_letters := substr(l_postcode,5,2);
--
if upper(substr(l_postcode_letters,1,1)) = lower( substr( l_postcode_letters, 1, 1 ) )
or upper(substr(l_postcode_letters,2,1)) = lower( substr( l_postcode_letters, 2, 1 ) )
then
raise value_error;
end if;
--
return to_char( l_postcode_cijfers )||' '||upper( l_postcode_letters );
elsif l_postcode_lengte = 0
then
return null;
else
raise value_error;
end if;
---------------------
Heb je hier iets aan? Deze functie zorgt er overigens voor dat elke postcode met het zelfde formaat in de database staat (dus met spatie ertussen).
En daar doe je een controle in zoals:
-----------------
function format_postcode (p_postcode in varchar2) RETURN varchar2
is
l_postcode varchar2(7) := replace(p_postcode,' ');
l_postcode_lengte number(1);
l_postcode_cijfers number(4);
l_postcode_letters varchar2(2);
l_postcode_lengte := nvl(length(l_postcode),0);
--
if l_postcode_lengte = 6
then
l_postcode_cijfers := substr(l_postcode,1,4);
l_postcode_letters := substr(l_postcode,5,2);
--
if upper(substr(l_postcode_letters,1,1)) = lower( substr( l_postcode_letters, 1, 1 ) )
or upper(substr(l_postcode_letters,2,1)) = lower( substr( l_postcode_letters, 2, 1 ) )
then
raise value_error;
end if;
--
return to_char( l_postcode_cijfers )||' '||upper( l_postcode_letters );
elsif l_postcode_lengte = 0
then
return null;
else
raise value_error;
end if;
---------------------
Heb je hier iets aan? Deze functie zorgt er overigens voor dat elke postcode met het zelfde formaat in de database staat (dus met spatie ertussen).
Pagina: 1