create type adrtype AS OBJECT
(
rue varchar2(30),
vile varchar2(10)
);
create type t_logiciel;
create type t_pc;
create type t_instatype as OBJECT
(
dateint date,
poste ref t_pc
);
create or replace type t_pc as OBJECT
(
Nserie number ,
adrIP number,
CPU varchar(20)
);
create type t_instatypes as table of t_instatype
create or replace type t_logiciel as OBJECT
(
nomLog varchar2(30),
version number,
editeur varchar2(20),
instalation t_instatypes
);
create type t_logiciels as table of REF t_logiciel;
create table logiciel of t_logiciel nested table instalation Store as tab_ins;
create table departement
(
codeDept number is primary key,
nomDept varchar2(20),
budget varchar2(20),
adress adrtype,
logiciels t_logiciels
) nested table logiciels Store as tab_log;
create table pc of t_pc;
-- insertion dans la table logiciel
insert into logiciel
values ( 'unity', 123, 'adobe', t_instatypes ( t_instatype ( '01/01/2005' , ( select ref(p) from pc p where Nserie=123 ) ) ) );
-- insertion en departement
insert into departement
values ( 3, 'INFO', 'jh', adrtype('saada','fes'), t_logiciels( ( select ref(l) from logiciel l where version=123 ) ) );
-- insert autre element logiciel dans le departement
insert into the ( select logiciels from departement where codedept=3 )
values ( ( select ref(l) from logiciel l where version=127 ) );
jeveuxsélectionnerlesvaleur qui sont des references de colomn(logiciels)dans la table departement
答案 0 :(得分:1)
以下内容应返回请求的数据:
select d.codeDept,
d.ADRESS,
l.column_value.nomLog,
l.column_value.version
from
departement d , table (d.logiciels) l