Código SQL:
Ver original
CREATE OR REPLACE PROCEDURE actualiza_precio (sala1 VARCHAR2) AS --Creamos un cursor seleccionando el precio, el tema y la capacidad, condicionando el nombre de la sala CURSOR consulta IS SELECT conferencia.precio, conferencia.tema, sala.capacidad FROM conferencia, sala WHERE sala.nombre=sala1; --Declaramos las variables necesarias para el procedimiento v_precio NUMBER; v_conferencia NUMBER; v_tema varchar2(200); v_capacidad NUMBER; BEGIN OPEN consulta; v_conferencia :=0; --Creamos una secuencia repetitiva para encontrar todos los temas y sus respectivos precios LOOP EXIT WHEN consulta%NOTFOUND; FETCH consulta INTO v_precio, v_tema, v_capacidad; --creamos la condición para actualizar el precio IF v_capacidad<180 THEN v_precio:=v_precio*1.1; ELSE v_capacidad>180 THEN v_precio:=vprecio*1.05; DBMS_OUTPUT.PUT_LINE (v_tema||': '||v_precio); v_conferencia := v_conferencia+1; END IF; END LOOP; CLOSE consulta; --Creamos una condición para saber cuántos precios han sido actualizados en el procedimiento IF v_conferencia <> 0 THEN DBMS_OUTPUT.PUT_LINE ('Precios actualizados:'||' '||TO_CHAR(v_conferencia)); END IF; END;