评论选择者表参考

时间:2015-12-14 22:38:38

标签: oracle

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

1 个答案:

答案 0 :(得分:1)

以下内容应返回请求的数据:

select d.codeDept, 
     d.ADRESS,
     l.column_value.nomLog,
     l.column_value.version
from 
 departement d , table (d.logiciels)  l