Exercice 1:
Schéma 1
- create type t_stage as object ( Nstage number,
theme varchar2(10));
create type etudiant as object (Netu number,
nom varchar2(10),
stg ref t_stage);
Finalement, instancier les tables stage et étudiant.
Create table
stage of t_stage ;
Create table etudiant of t_etudiant;
Schéma 2:
Create type C1 as
object (a varchar2(10));
Create type A as
object (c varchar2(10), leC1 ref C1) ;
Create type tabA as table of A;
Create type C2 as
object (b varchar2(10), lesA tabA);
- Create type C;
- Create type list_C as object (list ref c) ;
- Create type tab_ C as table of list_ C;
- Create or replace type C as object(a varchar2(10), leC ref C, lesC tab_C);
Exercice
2:
1. Create type tab_email as varray(4) of varchar2(20);
Create type t_personne as object( code
number,
nom varchar2(10),
gsm varchar2(10),
email tab_email);
2. create table
personne of t_personne (
Constraint
pk_per primary key(code),
Constraint
nn_per nom not null,
Constraint
uq_per unique(gsm)) ;
3. desc
t_personne
Desc personne
4. desc user_constraints
5. insert into
personne
values( 10,’ali’,’066778899’,tab_email(‘ali@gl.com’,’ali@mea.ma’)) ;
insert into
personne
values (
20,’amal’,’06554433’,tab_email(‘al@gil.com’,’al@nara.ma’)) ;
6. Select nom, gsm from personne ;
7. select p.code, count(*)
from personne p, table(p.email)
group
by p.code;
ou
select count(*)
from table(
select p.email
from personne p
where p.code=10 );
Exercice
3:
create or replace
type t_personne as object
(id number,
nom varchar(20),
prenom varchar(20),
age number,
member function afficher return varchar);
create or replace
type body t_personne as member
function afficher return varchar is
nom
varchar(20);
begin
return
concat(self.nom,self.prenom);
end afficher;
end;
create or replace
type t_travailleur under t_personne (salaire number);
create or replace
type t_etudiant under t_personne( niveau varchar(20));
desc
t_etudiant;
create table etudiant of t_etudiant
( constraint
pk_id primary
key(id));
create table travailleur of t_travailleur
(
constraint pk_id_tr primary
key(id));
- insert into travailleur values(10,'salim','ali',25,7500) ;
- insert into travailleur values(20,'jamil','amal',27,8000) ;
- insert into travailleur values(30,'karam','nour',23,5500) ;
7. select * from travailleur;
select
t.afficher() from travailleur t;
Aucun commentaire:
Enregistrer un commentaire