Méthodes de table d'objets

DéfinitionMé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...).

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

SyntaxeDé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;

RemarqueType 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