Professional Documents
Culture Documents
Q1 a)
----------------------------
-- Effacer les types:
----------------------------
DROP TABLE Dessins;
DROP TYPE CercleType;
DROP TYPE RectangleType;
DROP TYPE DessinType;
DROP TYPE TableFormesType;
DROP TYPE FormeType;
----------------------------
-- Creation du type FORME:
----------------------------
CREATE OR REPLACE TYPE FormeType AS OBJECT
(
id INTEGER,
FINAL MAP MEMBER FUNCTION getId RETURN INTEGER,
MEMBER FUNCTION getAire RETURN FLOAT,
MEMBER FUNCTION imprimer RETURN VARCHAR2
) NOT INSTANTIABLE NOT FINAL
/
-------------------------------
-- Creation du type RECTANGLE:
-------------------------------
CREATE OR REPLACE TYPE RectangleType UNDER FormeType
(
largeur FLOAT,
hauteur FLOAT,
OVERRIDING MEMBER FUNCTION getAire RETURN FLOAT,
OVERRIDING MEMBER FUNCTION imprimer RETURN VARCHAR2
)
/
-----------------------------------------
-- Creation d'une table d'objets Dessin:
-----------------------------------------
CREATE TABLE Dessins OF DessinType
(
PRIMARY KEY(titre)
)
NESTED TABLE formes STORE AS laTableDeFormes
/
commit
/
Q1 b)
Q1 c)
----------------------------------------------------------
-- Affichage de l'aire des formes du dessin 'mon dessin':
----------------------------------------------------------
-----------------------------------------------------------
-- Affichage de l'aire des cercles du dessin 'mon dessin':
-----------------------------------------------------------
Q2 a)
----------------------------
-- Creation du type COURS:
----------------------------
CREATE OR REPLACE TYPE CoursType AS OBJECT
(
sigle VARCHAR2(6),
titre VARCHAR2(50),
année INTEGER,
"session" VARCHAR(1)
)
/
----------------------------
-- Creation du type PERSONNE:
----------------------------
CREATE OR REPLACE TYPE PersonneType AS OBJECT
(
nom VARCHAR2(50),
courriel VARCHAR2(50),
dateNaissance DATE,
FINAL MEMBER FUNCTION getAge RETURN INTEGER
) NOT INSTANTIABLE NOT FINAL
/
----------------------------
-- Creation du type ETUDIANT:
----------------------------
CREATE OR REPLACE TYPE ÉtudiantType UNDER PersonneType
(
codePermanent VARCHAR2(15),
programme VARCHAR2(15),
coursSuivis TableRésultatsType,
FINAL MEMBER FUNCTION getMoyenne(
p_année INTEGER,
p_session VARCHAR2
) RETURN FLOAT
)
/
----------------------------
-- Creation du type PROFESSEUR:
----------------------------
CREATE OR REPLACE TYPE ProfesseurType UNDER PersonneType
(
matricule VARCHAR2(8),
département VARCHAR2(30),
coursEnseignés TableCoursRefType,
FINAL MEMBER FUNCTION getChargeEnseignement RETURN INTEGER
)
/
CREATE OR REPLACE TYPE BODY ProfesseurType AS
FINAL MEMBER FUNCTION getChargeEnseignement RETURN INTEGER IS
num INTEGER;
BEGIN
SELECT COUNT(*) INTO num
FROM TABLE(SELF.coursEnseignés);
RETURN num;
END;
END;
/
--------------------------------
-- Creation des tables d’objets:
--------------------------------
commit
/
Q2 b)
commit
/
Q2 c)
Q2 d)