examen
Aquí vemos un primer ejemplo de bloque anónimo (copiarlo y comprobar que funciona correctamente)
-- esto sólo lo haremos una vez al empezar lasesión
set serveroutput on;
-- si va bien escribirá 0
DECLARE
c NUMBER := 0;
BEGIN
DBMS_OUTPUT.PUT_LINE('c vale ' || c);
END;
Ejercicio: copiar y arreglar el siguiente código(sugerencia: mirar la sintaxis para select en PL/SQL y el error que se obtiene):
-- mostrar la fecha actual
DECLARE
fecha Date;
BEGIN
Select Sysdate from dual into fecha ; DBMS_OUTPUT.PUT_LINE('Hoy es ' || fecha);
END;
Para el resto de la práctica usaremos unas tablas que modelan las reservas de un sistema de hoteles:
-- por si las tablas ya existen
drop table reservas;drop table habitaciones;
drop table temporadas;
create table habitaciones (
piso integer NOT NULL,
habitacion varchar(2) NOT NULL,
tipo varchar(10) DEFAULT 'Doble'
CONSTRAINTnn_tipo NOT NULL
CONSTRAINT ch_Tipo CHECK (tipo IN ('Individual','Doble', 'Suite')),
primary key(piso,habitacion));
create table reservas (
piso integer,
habitacion varchar(2), fechaentrada date DEFAULT SYSDATE,
noches integer,
primary key(piso,habitacion,fechaentrada),
foreign key (piso,habitacion) references habitaciones
);
create table temporadas (
nombre varchar(10)not null,
mesInicio integer not null,
diaInicio integer not null,
mesFin integer not null,
diaFin integer not null,
primary key(nombre,mesInicio,diaInicio)
);
insert into temporadasvalues('Alta',6,1,8,30);
insert into temporadas values('Baja',1,1,31,5);
insert into temporadas values('Baja',1,9,31,12);
2 Procedimientos: creando las habitaciones
La estructura de un procedimiento sinparámetros en Oracle es la del siguiente ejemplo:
CREATE OR REPLACE PROCEDURE nombre ( parámetros ) AS
-- variables
BEGIN
-- codigo
END nombre;
Ejercicio: Escribir un...
Regístrate para leer el documento completo.