Domaines NUMBER et VARCHAR2

NUMBER(e)

NUMBER(e) se comporte comme un type standard INTEGER pour lequel on aurait limité la valeur maximale en nombre de chiffres.

Ainsi NUMBER(2) est un INTEGER compris entre -99 et 99.

Oracle accepte le type INTEGER qu'il converti en NUMBER(38).

NUMBER(e,d)

NUMBER(e,d) se comporte globalement comme un type standard DECIMAL(e,d).

Oracle accepte la déclaration DECIMAL qu'il converti en NUMBER.

RemarqueVARCHAR et VARCHAR2

  • VARCHAR et VARCHAR2 se comportent exactement de la même façon pour le moment (comme le type standard VARCHAR) ;

  • mais Oracle prévoit éventuellement d'utiliser différemment VARCHAR dans le futur.

Oracle recommande de ne pas utiliser VARCHAR, mais d'utiliser VARCHAR2.

Remarque

Il n'y a pas de type de données BOOLEAN.

ExempleBD "Gestion des intervenants" : Schéma relationnel

1
tIntervenant (#pknom:varchar, prenom:varchar, poste:integer)
2
tCours (#pkannee:2000..2100, #pknum:integer, titre:varchar, type:C|TD|TP, fkintervenant=>tIntervenant, debut:date)

ExempleBD "Gestion des intervenants" : Création des tables

1
CREATE TABLE tIntervenant (
2
pknom VARCHAR2(255) PRIMARY KEY,
3
prenom VARCHAR2(255) NOT NULL,
4
poste NUMBER(4)
5
);
6
7
CREATE TABLE tCours (
8
pkannee NUMBER(4) check (pkannee>2000 and pkannee<2100),
9
pknum INTEGER,
10
titre VARCHAR2(255),
11
type CHAR(2) CHECK (type='C' OR type='TD' OR type='TP') NOT NULL,
12
fkintervenant VARCHAR2(255) REFERENCES tIntervenant(pknom) NOT NULL,
13
debut DATE,
14
PRIMARY KEY(pkannee, pknum)
15
);

ComplémentPour entrer dans le détail