Méthodes de table d'objets
Définition : Méthodes de table
Si le type sur lequel s'appuie la création de la table définit des méthodes, alors les méthodes seront associées à la table (méthodes de table).
Il sera possible d'accéder à ces méthodes de la même façon que l'on accède aux attributs (projection, sélection...).
Syntaxe : Accès aux méthodes d'une table d'objets
1
SELECT t.m1(), t.m2() ...
2
FROM table t
3
...
Attention :
L'utilisation d'un alias est obligatoire pour accéder aux méthodes.
Syntaxe : Déclaration de type avec méthodes
1
CREATE TYPE nom_type AS OBJECT (
2
nom_attribut1 type_attribut1
3
...
4
MEMBER FUNCTION nom_fonction1 (parametre1 IN|OUT type_parametre1, ...) RETURN type_fonction1
5
...
6
);
7
/
8
CREATE TYPE BODY nom_type
9
IS
10
MEMBER FUNCTION nom_fonction1 (...) RETURN type_fonction1
11
IS
12
BEGIN
13
...
14
END ;
15
MEMBER FUNCTION nom_fonction2 ...
16
...
17
END ;
18
END ;
19
/
Exemple :
1
CREATE TYPE typCours AS OBJECT (
2
pknum NUMBER(2),
3
debut DATE,
4
MEMBER FUNCTION fin RETURN DATE
5
);
6
/
7
CREATE TYPE BODY typCours IS
8
MEMBER FUNCTION fin RETURN DATE
9
IS
10
BEGIN
11
RETURN SELF.debut + 5;
12
END;
13
END;
14
/
15
16
CREATE TABLE tCours OF typCours (
17
pknum PRIMARY KEY
18
);
19
20
SELECT c.pknum, c.fin()
21
FROM tCours c;
Remarque : Type retourné par une méthode
« The datatype cannot specify a length, precision, or scale. »
http://docs.oracle.com/cd/B13789_01/server.101/b10759/statements_5009.htm