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

Sintaxis crear funcion SQL

Estas en el tema de Sintaxis crear funcion SQL en el foro de Mysql en Foros del Web. Hola, estoy intentando crear una función de MySQl pero me da error de sintaxis, no logro averiguar donde esta el problema, esta es la versión ...
  #1 (permalink)  
Antiguo 13/04/2010, 05:08
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 19 años, 5 meses
Puntos: 9
Sintaxis crear funcion SQL

Hola, estoy intentando crear una función de MySQl pero me da error de sintaxis, no logro averiguar donde esta el problema, esta es la versión resumida de la función:

Código MySQL:
Ver original
  1. DROP FUNCTION IF EXISTS calcImporte;
  2.  
  3. DELIMITER //
  4.  
  5. CREATE FUNCTION calcImporte(piva decimal(10,2))
  6.     RETURNS decimal(10,2)
  7.    declare ivacalc decimal(10,2);
  8.    declare pimporte_total decimal(10,2);
  9.    
  10.    if (piva is null) then
  11.       Select valor into ivacalc
  12.       from Valor_Iva
  13.       where nombre = 'IVA_VIGENTE';
  14.  
  15.     RETURN pimporte_total;
  16. //
  17.  
  18. DELIMITER ;

No os fijéis si funciona o no que he borrado cosas, sólo en donde está el error de sintaxis. De hecho, si hago copy&paste de funciones de ejemplo de internet algunas también me dan error de sintaxis.

¿Alguna idea?

Gracias
  #2 (permalink)  
Antiguo 13/04/2010, 05:17
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Sintaxis crear funcion SQL

Dos ideas:
1) Si vas a poner un script para que veamos si contiene errores debes ponerlo completo. Tu mismo dices haber borrado cosas de él, con lo que no podemos estar seguros si es en las líneas borradas donde está el error...
2) El IF ... THEN está incompleto. Falta el cierre END IF;, pero como te dije, no se si falta o lo borraste...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 13/04/2010, 06:20
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 19 años, 5 meses
Puntos: 9
Respuesta: Sintaxis crear funcion SQL

Era el END IF;, disculpas, tengo un pequeño cacao de tanto salto entre ASP, PHP, SQL Server, MySql....

Sí, borré sólo algunas líneas para dejarlo más claro pero la estructura de la función era la que dejé... sin el END IF

Gracias

Etiquetas: funcion
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 18:10.