Kontroll av input med CHECK
Stikkord:
Eksempel 1:
create table vei(
id int not null,
veinummer int,
veitype varchar(15)
check (veitype in('Privat vei','Kommunal vei','Fylkesvei','Riksvei','Europavei')),
fra varchar(35),
til varchar(35),
primary key (id));
insert into vei values(1, 22, 'Riksvei', 'Halden', 'Rakkestad');
insert into vei values(2, 6, 'Europavei', 'Oslo', 'Gjøvik');
insert into vei values(3, 118, 'Fylkesvei', 'Skjeberg', 'Fredrikstad');
insert into vei values(4, 10, 'Kommunal vei', 'Iddebo', 'Iddevang');
insert into vei values(5, 1984, 'Privat vei', 'Uthuset', 'Stranda');
insert into vei values(6, 4, 'Svensk vei', 'Jönköping', 'Örebro');
Output fra SQLPlus:
Tabell opprettet.
1 rad opprettet.
1 rad opprettet.
1 rad opprettet.
1 rad opprettet.
1 rad opprettet.
insert into vei values(6, 4, 'Svensk vei', 'Jönköping', 'Örebro')
*
Feil på linje 1:
ORA-02290: kontrollskranken (ELINKAS.SYS_C0022428) er overtrådt
Eksempel 2:
create table delelager(
delnr varchar(13) not null
check (delnr LIKE '555-%'),
info varchar(50),
antall int,
primary key (delnr));
insert into delelager values('555-1781-25-1', 'Støtfanger, Ford Sierra, Rød, 1987-1989', 25);
insert into delelager values('357-4378-23-3', 'Ratt, Ovalt, Opel Rekord, 1960', 2);
insert into delelager values('555-7645-00-6', 'Bakskjerm, Honda Civic, Signalgul, 1998', 15);
Output fra SQLPlus:
Tabell opprettet.
1 rad opprettet.
insert into delelager values('357-4378-23-3', 'Ratt, Ovalt, Opel Rekord, 1960', 2)
*
Feil på linje 1:
ORA-02290: kontrollskranken (ELINKAS.SYS_C0022431) er overtrådt
1 rad opprettet.
Eksempel 3:
create table havhesten(
ovelsenr int not null
check (ovelsenr between 1 and 9),
beskrivelse varchar(25),
primary key (ovelsenr));
create table utover(
navn varchar(50) not null,
ovelsenr int,
poeng int
check (poeng between 0 and 3),
foreign key(ovelsenr) references havhesten(ovelsenr),
primary key(navn));
insert into havhesten values(1, 'Distansesvømming');
insert into havhesten values(2, 'Ryggsvømming');
insert into havhesten values(10, 'Salto med dobbel skru');
insert into utover values('Jens Olsen', 1, 3);
insert into utover values('Ola Andersen', 2, 5);
insert into utover values('Anna Olavsen', 10, 1);
Output fra SQLPlus:
Tabell opprettet.
Tabell opprettet.
1 rad opprettet.
1 rad opprettet.
insert into havhesten values(10, 'Salto med dobbel skru');
*
Feil på linje 1:
ORA-02290: kontrollskranken (ELINKAS.SYS_C0022478) er overtrådt
1 rad opprettet.
insert into utover values('Ola Andersen', 2, 5);
*
Feil på linje 1:
ORA-02290: kontrollskranken (ELINKAS.SYS_C0022481) er overtrådt
insert into utover values('Anna Olavsen', 10, 1);
*
Feil på linje 1:
ORA-02291: integritetsskranken (ELINKAS.SYS_C0022483) er overtrådt - hovednøkkel ikke funnet
I tillegg til eksemplene over kan man også teste verdier med operatorene >, >=, <, <= og <>.