Tarea base de datos

Páginas: 7 (1602 palabras) Publicado: 25 de febrero de 2012
Desarrollo (parte 2)
“Lord of Highlands”
Ejercicio n° 3:
Implementar la función F_MONOP_JUG que retorna el porcentaje de recursos que un jugador posee, respecto del total disponible. Parámetros: nombre del jugador, nombre del recurso Se ejecuta así
CREATE OR REPLACE function F_MONOP_JUB (nombre_jugador in varchar2,nom_recurso in varchar2) return number is X number;
disp number;
cantnumber;
begin
select rec.disponibilidad, rj.cantidad into disp, cant from RECURSO rec, RECURSO_JUGADOR rj
where rec.nombre=nom_recurso and nombre_jugador=rj.jugador and rec.nombre=rj.recurso;
X:= 100* cant/disp;
RETURN X;
end;

CREATE OR REPLACE function F_MONOP_JUB (nombre_jugador in varchar2,nom_recurso in varchar2) return number is X number;
disp number;
cant number;
begin
selectrec.disponibilidad, rj.cantidad into disp, cant from RECURSO rec, RECURSO_JUGADOR rj
where rec.nombre=nom_recurso and nombre_jugador=rj.jugador and rec.nombre=rj.recurso;
X:= 100* cant/disp;
RETURN X;
end;

begin
dbms_output.put_line(f_monop_jub('pamela','Oro'));
end;
begin
dbms_output.put_line(f_monop_jub('pamela','Oro'));
end;

Salida

* Creé 2 variables de tipo number
*De las tablas RECURSO y RECURSO_JUGADOR, cuando la tupla cumple la condición de que :Nombre del jugador ingresado como parámetro sea igual al nombre del jugador de la tabla RECURSO_JUGADOR y que el nombre del recurso ingresado de parámetro es igual al nombre de la tabla RECURSO y que el nombre del recurso ingresado de parámetro sea igual al nombre de recurso de la tabla RECURSO_JUGADOR, si estase cumple de RECURSO ,seleccioné de la columna disponibilidad un dato y lo almacene en la variable disp, RECURSO_JUGADOR de la columna cantidad saque un dato y lo almacene en la variable cant.
* Con cant y disp calculo el porcentaje
X:= 100* cant/disp; (regla de 3)

Ejercicio n° 4:
Implementar la función F_CIUD_4TUN que retorna “S” o “N” dependiendo si en una ciudad existe al menosuna unidad de cada uno de los 4 tipos. Parámetros: nombre ciudad.
CREATE OR REPLACE function F_CIUD_4TUN (nombre_ciudad in varchar2) return varchar2 is R varchar2(3);
cursor TIPOS_U is select u.tipo from CIUDAD ciu, ELEMENTO e, UNIDAD u
where ciu.cant_unidades>=4 and ciu.nombre=e.ciudad and e.id_elem=u.id_elem and nombre_ciudad=ciu.nombre;
tipo1 UNIDAD.tipo%type;
soldado boolean;
obreroboolean;
medico boolean;
cientifico boolean;
begin
R:='N';
open TIPOS_U;
loop
fetch TIPOS_U into tipo1;
exit when TIPOS_U%NOTFOUND or R='S';
if(tipo1='Soldado')then soldado:=true;
elsif(tipo1='Medico')then medico:=true;
elsif(tipo1='Obrero')then obrero:=true;
elsif(tipo1='Cientifico')then cientifico:=true;
end if;
if (soldado and medico and obrero and cientifico)then R:='S';
end if;end loop;
close TIPOS_U;
RETURN R;
end;

CREATE OR REPLACE function F_CIUD_4TUN (nombre_ciudad in varchar2) return varchar2 is R varchar2(3);
cursor TIPOS_U is select u.tipo from CIUDAD ciu, ELEMENTO e, UNIDAD u
where ciu.cant_unidades>=4 and ciu.nombre=e.ciudad and e.id_elem=u.id_elem and nombre_ciudad=ciu.nombre;
tipo1 UNIDAD.tipo%type;
soldado boolean;
obrero boolean;
medicoboolean;
cientifico boolean;
begin
R:='N';
open TIPOS_U;
loop
fetch TIPOS_U into tipo1;
exit when TIPOS_U%NOTFOUND or R='S';
if(tipo1='Soldado')then soldado:=true;
elsif(tipo1='Medico')then medico:=true;
elsif(tipo1='Obrero')then obrero:=true;
elsif(tipo1='Cientifico')then cientifico:=true;
end if;
if (soldado and medico and obrero and cientifico)then R:='S';
end if;
end loop;
closeTIPOS_U;
RETURN R;
end;

Se ejecuta asíbegin
dbms_output.put_line(f_ciud_4tun('sincity'));
end;
begin
dbms_output.put_line(f_ciud_4tun('sincity'));
end;

Salida Negativa

Salida Positiva

Tuve que trabajar con cursores q me entregaran desde una selección de tablas que cumplían con una condiciones una tabla de la cual yo pudiera tener la lista de unidades que tenía una...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • tarea de base de datos
  • Tarea Base De Datos Sql
  • Tarea Unidad I-Base de datos
  • Tarea se semana 6 de Bases de datos CUCEI
  • CFGS DAM BASES DE DATOS TAREA 7
  • Tarea 1. Base de datos. ies valle del jerte
  • BASE DE DATOS , base de datos
  • Base de datos tarea

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS