Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

[SOLUCIONADO] procedimiento

Estas en el tema de procedimiento en el foro de Oracle en Foros del Web. He creado este procemiento, pero me da error en la primera condición concretamente en el ELSE a ver que le puede pasar @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código ...
  #1 (permalink)  
Antiguo 17/05/2014, 06:13
 
Fecha de Ingreso: mayo-2014
Mensajes: 12
Antigüedad: 10 años, 6 meses
Puntos: 0
procedimiento

He creado este procemiento, pero me da error en la primera condición concretamente en el ELSE a ver que le puede pasar
Código SQL:
Ver original
  1. CREATE OR REPLACE PROCEDURE actualiza_precio (sala1 VARCHAR2)
  2. AS
  3. --Creamos un cursor seleccionando el precio, el tema y la capacidad, condicionando el nombre de la sala
  4. CURSOR consulta IS SELECT conferencia.precio, conferencia.tema, sala.capacidad FROM conferencia, sala WHERE sala.nombre=sala1;
  5. --Declaramos las variables necesarias para el procedimiento
  6. v_precio NUMBER;
  7. v_conferencia NUMBER;
  8. v_tema varchar2(200);
  9. v_capacidad NUMBER;
  10. BEGIN
  11. OPEN consulta;
  12. v_conferencia :=0;
  13. --Creamos una secuencia repetitiva para encontrar todos los temas y sus respectivos precios
  14. LOOP
  15. EXIT WHEN consulta%NOTFOUND;
  16. FETCH consulta INTO v_precio, v_tema, v_capacidad;
  17. --creamos la condición para actualizar el precio
  18. IF
  19.  v_capacidad<180  THEN v_precio:=v_precio*1.1;
  20. ELSE
  21.  v_capacidad>180 THEN v_precio:=vprecio*1.05;
  22. DBMS_OUTPUT.PUT_LINE (v_tema||':  '||v_precio);
  23. v_conferencia := v_conferencia+1;
  24. END IF;
  25. END LOOP;
  26. CLOSE consulta;
  27. --Creamos una condición para saber cuántos precios han sido actualizados en el procedimiento
  28. IF v_conferencia <> 0 THEN
  29. DBMS_OUTPUT.PUT_LINE ('Precios actualizados:'||'  '||TO_CHAR(v_conferencia));
  30. END IF;
  31.  END;

Última edición por gnzsoloyo; 17/05/2014 a las 10:48 Razón: Usar Highligh "SQL", por favor.
  #2 (permalink)  
Antiguo 17/05/2014, 10:52
 
Fecha de Ingreso: mayo-2014
Mensajes: 12
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: procedimiento

SOLUCIONADO en el ELSE no se mete ninguna condición solo la sentencia sin then
  #3 (permalink)  
Antiguo 17/05/2014, 10:57
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: procedimiento

Cita:
Iniciado por cocode Ver Mensaje
SOLUCIONADO en el ELSE no se mete ninguna condición solo la sentencia sin then
Exacto. Para poder poner condiciones debería ser un ELSIF:
Código SQL:
Ver original
  1. IF condition1 THEN
  2.    {...statements TO EXECUTE WHEN condition1 IS TRUE...}
  3.  
  4. ELSIF condition2 THEN
  5.    {...statements TO EXECUTE WHEN condition2 IS TRUE...}
  6.  
  7. ELSE
  8.    {...statements TO EXECUTE WHEN BOTH condition1 AND condition2 are FALSE...}
  9.  
  10. END IF;

VEr manual de referencia oficial: http://docs.oracle.com/cd/B19306_01/..._statement.htm
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: procedimiento, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:29.