DAW Desenvolupament d'aplicacions web ( Informàtica )
Exercici de DAW-MP02-UF4 - Bases de dades objectes-relacionals

#FpInfor #Daw #DawMp02 #DawMp02Uf04

(etiquetes - hashtags)
Oracle Objecte-Relacional - Els actors - Taula d'objectes amb mètode i taula amb columna referència a objecte

Objectiu didàctic

  • Treballar amb taules d'objectes.
  • Treballar amb taula de referència a objectes.
  • Invocar mètodes de l'objecte.

DDL Creació del tipus objecte i del seu mètode

--Creació del tipus
Create or Replace type Actor As Object (
  Nom                 varchar2(20),
  Nacionalitat        varchar2(30),
  DataNaixament        date,
  Member Function Edat return integer
);

--Creem la funció
Create or replace type body Actor As
  Member Function Edat return integer is
           Any_actual integer;
           Any_naixament integer;
        Begin 
           Select Extract(Year from Sysdate) into Any_actual from dual;
           Select to_number(to_char(DataNaixament,'YYYY')) into Any_naixament from dual;
           return Any_actual - Any_naixament;
        End;
End;

DDL Creació de taula d'objectes i taula que conté referència a objecte.

--Creem la taula Actors
Create table Actors Of Actor;

--Creem la taula pel·licula que tindra la referencia a Actors
create table Peli (
  Nom               varchar2(30),
  DataEstrena   date,
  Protagonista Ref Actor Scope Is Actors
);

DML inserció de dades a la taula d'objectes:

--Insert Actors
insert into Actors Values (
   Actor ('Bruce Willis','Americana','02/02/1963'));
insert into Actors Values (
   Actor  ('Arnold','Austriac','08/10/1948') );
insert into Actors Values (
  Actor  ('DiCaprio','Italiano','10/12/1976') );

DML inserció de dades a la taula que referencia objectes mitjançant una variable:

--Afegim una Peli d un actor
declare
  dades_peli ref Actor;
begin
  Select Ref(a) into dades_peli from Actors a where a.Nom = 'Arnold';
  Insert into Peli (Nom,DataEstrena,Protagonista)
        Values ('Terminator2','02/08/1980',dades_peli);
end;

DML invocació d'un mètode de l'objecte:

--Seleccionem l'edat del actor Arnold
select a.Edat() from Actors a where a.Nom = 'Arnold';

Exercicis

Executa aquestes sentències al teu entorn Oracle tot comprovant i entenent els resultats.

By D.López & R.Saulis & A.Ramírez (DAW'2014)

Resultats d'aprenentatge: 1.B 1.C 1.F 1.G
Continguts: 1.1 1.3 1.4 1.6 1.8 1.9 1.10

Editat 11 de abril de 2014 a les 17:31
per daniel herrera

Pujat el 11 de abril de 2014 a les 16:14
per daniel herrera

Consulteu nota legal i condicions