Correction de l'atelier 4



Correction : exercice 1

 La creation des types:

  • create type t_persone as object(code number(4),nom varchar2(30),member function afficher return varchar2) not final;


  • create type body t_persone as member function afficher return varchar2 is
          begin
          return self.nom;
          end afficher;
           end;


  • create type t_linCmd as object(id number(4),total number(4,2),zone varchar2(30),
            member procedure changer (a in number),
            member procedure changer (b in varchar2));


  • create or replace type body t_linCmd as
        member procedure changer (a in number) is
           begin
           self.id:=a;
        end changer;
        member procedure changer (b in varchar2) is
            begin
           self.zone:=b;
      end changer;
  end;
  /

  • create type tab_linCmd as table of t_linCmd;


  • create type t_Cmd;

  • create type list_cmd as object (liste ref t_cmd);
  • create type tab_cmd as table of list_cmd;

  • create type t_Client under t_persone(email varchar2(30),cmdx tab_Cmd,
                            overriding member function afficher return varchar2);

  • create or replace type body  t_Client as overriding member function afficher return varchar2 is 
                   begin
                 return self.nom||' '||self.email;
               end afficher;
      end;

  • create or replace type t_Cmd as object(code number(4),dateC date,Cltx ref t_Client,listCmd tab_linCmd);

La DESCRIPTION DES TYPES

SQL> desc t_client
 t_client constitue une extension de U.T_PERSONE
 Nom                                       NULL ?   Type
 ----------------------------------------- -------- ----------------------------
 CODE                                               NUMBER(4)
 NOM                                                VARCHAR2(30)
 EMAIL                                              VARCHAR2(30)
 CMDX                                               TAB_CMD

METHOD
------
 MEMBER FUNCTION AFFICHER RETURNS VARCHAR2

SQL> desc t_cmd
 Nom                                       NULL ?   Type
 ----------------------------------------- -------- ----------------------------
 CODE                                               NUMBER(4)
 DATEC                                              DATE
 CLTX                                               REF OF T_CLIENT
 LISTCMD                                            TAB_LINCMD

SQL> desc t_lincmd
 Nom                                       NULL ?   Type
 ----------------------------------------- -------- ----------------------------
 ID                                                 NUMBER(4)
 TOTAL                                              NUMBER(4,2)
 ZONE                                               VARCHAR2(30)

METHOD
------
 MEMBER PROCEDURE CHANGER
 Nom d'argument                  Type                    E/S par défaut ?
 ------------------------------ ----------------------- ------ --------
 A                              NUMBER                  IN   

METHOD
------
 MEMBER PROCEDURE CHANGER
 Nom d'argument                  Type                    E/S par défaut ?
 ------------------------------ ----------------------- ------ --------
 B                              VARCHAR2                IN   


La creation des tables

  • create table Client of t_Client(constraint pk_code primary key(code))
                 nested table cmdx store as table_cmd;

  • create table cmd of t_cmd (constraint pk_code_cmd primary key(code))
        nested table listcmd store as table_linecmd;

Correction : exercice 2


create type t_formation as object( code number,module clob);


create table formation of t_formation(constraint pk_f primary key(code));


insert into formation values(10,'1. Le langage Java est un langage de programmation informatique orient‚ objet cr‚‚ par James Gosling et Patrick Naughton, employ‚s de Sun Microsystems, ...');


insert into formation values(20,EMPTY_CLOB());


SQL> insert into formation values(20,'Oracle Database est un systŠme de gestion de base de donn‚es relationnel (SGBDR) qui depuis l'introduction du support du modŠle objet dans sa version 8 peut ˆtre aussi qualifi‚ de systŠme de gestion de base de donn‚es relationnel-objet (SGBDRO). Fourni par Oracle Corporation, il a ‚t‚ d‚velopp‚ par Larry Ellison, accompagn‚ d'autres personnes telles que Bob Miner et Ed Oates.');



Correction : exercice 3
Dans un premier temps, créons le  répertoire lesCVs  sur C :

Ensuite, plaçons les CVs des candidats dans ce répertoire.

Par la suite, déclarons l’alias logique vers ce répertoire :


create directory alias as 'c:\les_CVs';

maintenant, créons la table objet Etudiant:
 create type t_etudiant as object(code number, nom varchar2(10), prenom varchar2(10),   cv bfile);

create table etudiant of t_etudiant(constraint pk_e primary key(code));



Finalement, nous insérons les deux lignes souhaitées
insert into etudiant values(10,'sami','reda',bfilename('alias','cv10.docx'));

insert into etudiant values(11,'naya','nour',bfilename('alias','cv11.pdf'));


Aucun commentaire:

Enregistrer un commentaire