MySQL - ayuda en error por favor

 
Vista:

ayuda en error por favor

Publicado por katia (1 intervención) el 09/06/2011 08:09:35
CREATE DEFINER=`root`@`localhost` PROCEDURE `func_insact_alquiler`(IN op int,
pidalquiler int, pidempleado int, pidproveedor int, pidcontrato int, pfecha_inicio datetime,
pduracion int, pmonto numeric,
pmodalidad_de_trabajo varchar)
BEGIN
if op = 0 then
insert into alquiler(idalquiler,idempleado,idproveedor,idcontrato,fecha_inicio,duracion,monto,modalidad_de_trabajo)
values (pidalquiler,pidempleado, pidproveedor, pidcontrato,pfecha_inicio,pduracion, pmonto, pmodalidad_de_trabajo);

end if;

if op = 1 then
update alquiler set idempleado=pidempleado, idproveedor=pidproveedor,idcontrato=pidcontrato,fecha_inicio=pfecha_inicio,duracion=pduracion,monto=pmonto,modalidad_de_trabajo=pmodalidad_de_trabajo
where idalquiler=pidalquiler;

end if;
END

me sale el siguiente error:

usted tiene un error en la sintaxis SQL, consulte el manual que corresponde a su versión del servidor MySQL para la sintaxis correcta a usar cerca 'END' en la línea 1


por favor necesito ayuda para resolver esto; de antemano les agradecere!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

ayuda en error por favor

Publicado por Gonzalo GC (339 intervenciones) el 09/06/2011 15:23:54
Estas poniendo mal el último parámetro. Siendo un VARCHAR tienes que si o sí indicarle la longitud:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
-- --------------------------------------------------------------------------------
-- Routine DDL
-- Note: comments before and after the routine body will not be stored by the server
-- --------------------------------------------------------------------------------
DELIMITER $$
 
CREATE DEFINER=`root`@`localhost` PROCEDURE `func_insact_alquiler`
    (IN op int,
    pidalquiler int,
    pidempleado int,
    pidproveedor int,
    pidcontrato int,
    pfecha_inicio datetime,
    pduracion int, pmonto numeric,
    pmodalidad_de_trabajo varchar(200))
BEGIN
    IF op = 0 THEN
        INSERT INTO alquiler(idalquiler, idempleado, idproveedor, idcontrato, fecha_inicio, duracion, monto, modalidad_de_trabajo)
        VALUES(pidalquiler, pidempleado, pidproveedor, pidcontrato, pfecha_inicio, pduracion, pmonto, pmodalidad_de_trabajo);
    ELSEIF op = 1 THEN
        UPDATE alquiler SET
        idempleado = pidempleado,
        idproveedor = pidproveedor,
        idcontrato = pidcontrato,
        fecha_inicio = pfecha_inicio,
        duracion = pduracion,
        monto = pmonto,
        modalidad_de_trabajo = pmodalidad_de_trabajo
        WHERE idalquiler = pidalquiler;
    END IF;
END$$
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ayuda en error por favor

Publicado por Gonzalo GC (339 intervenciones) el 09/06/2011 15:24:04
Estas poniendo mal el último parámetro. Siendo un VARCHAR tienes que si o sí indicarle la longitud:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
-- --------------------------------------------------------------------------------
-- Routine DDL
-- Note: comments before and after the routine body will not be stored by the server
-- --------------------------------------------------------------------------------
DELIMITER $$
 
CREATE DEFINER=`root`@`localhost` PROCEDURE `func_insact_alquiler`
    (IN op int,
    pidalquiler int,
    pidempleado int,
    pidproveedor int,
    pidcontrato int,
    pfecha_inicio datetime,
    pduracion int, pmonto numeric,
    pmodalidad_de_trabajo varchar(200))
BEGIN
    IF op = 0 THEN
        INSERT INTO alquiler(idalquiler, idempleado, idproveedor, idcontrato, fecha_inicio, duracion, monto, modalidad_de_trabajo)
        VALUES(pidalquiler, pidempleado, pidproveedor, pidcontrato, pfecha_inicio, pduracion, pmonto, pmodalidad_de_trabajo);
    ELSEIF op = 1 THEN
        UPDATE alquiler SET
        idempleado = pidempleado,
        idproveedor = pidproveedor,
        idcontrato = pidcontrato,
        fecha_inicio = pfecha_inicio,
        duracion = pduracion,
        monto = pmonto,
        modalidad_de_trabajo = pmodalidad_de_trabajo
        WHERE idalquiler = pidalquiler;
    END IF;
END$$
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar