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 <>.