Database Reference
In-Depth Information
Il est possible de construire dynamiquement des collections ( NESTED TABLE ou VARRAY ) lors
de la création d'une vue objet à l'aide des directives CAST et MULTISET . La directive cast
convertit un résultat dans un type (ici, la requête crée une collection qui est nommée). Si le
résultat d'une requête retourne plusieurs enregistrements, il est nécessaire d'utiliser conjointe-
ment la directive multiset .
La déinition de la vue inclut la spéciication de l'OID basé sur la clé primaire de la table source
(colonne department_id ). La requête extrait, dans un premier temps, quatre colonnes de
la table departments . Par la suite, pour chaque enregistrement de la table employees , la
directive MULTISET construit un ensemble d'éléments composé de plusieurs colonnes de la
table enfant . La directive CAST nomme l'ensemble obtenu emps_nt , collection affectée à la
dernière colonne du type de la vue.
Tableau 4-24 : Création de la vue objet
Création de la vue
Structure de la vue
CREATE VIEW v_obj_dept_emps OF
departement_t
WITH OBJECT IDENTIFIER(n_dept)
AS SELECT d.department_id,
d.department_name,
d.manager_id, d.location_id,
CAST(MULTISET
(SELECT e.employee_id, e.irst_name,
e.last_name, e.hire_date
FROM hr.employees e
WHERE e.department_id=d.department_id)
AS emp_nt_t
) AS emps_nt
FROM hr.departments d;
SQL> DESC v_obj_dept_emps
Name Null? Type
----------------------- -------- ------------
N_DEPT NUMBER(4)
NOM_DEPT VARCHAR2(30)
ID_MANAGER NUMBER(6)
LIEU NUMBER(4)
EMPS_NT EMP_NT_T
Il est possible à présent de bénéicier de la jointure implicite offerte par la collection. La
requête suivante afiche la totalité de la vue.
 
Search WWH ::




Custom Search